我正在开发 pyqt4 和 python26 应用程序。我使用 qt 设计器(.ui 文件)创建了表单。 我将它们转换为 .py 和 .pyc 文件。但是当我尝试运行 .py 文件时,python 命令行在一秒钟内来来去去,看不到表格(对应的 .ui 文件)...可能是什么问题??
这是我的代码:(.py文件)
from DlgAbout_ui import Ui_DlgAbout
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import resources
class DlgAbout(QDialog, Ui_DlgAbout):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.setupUi(self)
self.logo.setPixmap( QPixmap( ":/icons/faunalia_logo.png" ) )
text = self.txt.toHtml()
text = text.replace( "$PLUGIN_NAME$", "RT Sql Layer" )
self.txt.setHtml(text)
最佳答案
首先,不要使用:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
相反:
from PyQt4 import QtCore, QtGui
并显式引用模块。
class DlgAbout(QtGui.QDialog, Ui_DlgAbout):
等等
在您的代码中,您所做的只是定义了一个对话框。您尚未定义任何要运行的主应用程序,或任何显示对话框的方式。
举个例子,这里有一个要运行的基本应用程序:
from PyQt4 import QtGui
import sys
class MyMainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.form_widget = FormWidget(self)
self.setCentralWidget(self.form_widget)
class FormWidget(QtGui.QWidget):
def __init__(self, parent):
super(FormWidget, self).__init__(parent)
self.layout = QtGui.QVBoxLayout(self)
self.button = QtGui.QPushButton("Button!")
self.layout.addWidget(self.button)
if __name__ == "__main__":
app = QtGui.QApplication([])
foo = MyMainWindow()
foo.show()
sys.exit(app.exec_())
这定义了一个主窗口和一个窗体(MyMainWindow 设置,如您所见)。
然后我检查这是否是正在运行的主文件 (if __name__ == "__main__":
),然后我启动应用程序 (The app = QtGui.QApplication([])
,创建主窗口,并显示主窗口。
在你的情况下,你可以像我一样定义一个主应用程序,并让它提醒你的 QDialog。
关于python - 运行 python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832808/