p506738532 发表于 2016-03-23 08:16

PyQt4设计对话框时怎么写主文件

我的目标是做一个图形对话框出来。
我的编程环境:Qt4,Python2,PyQt4.
我用pyuic4 把Qt Designer 生成的dialog.ui 转换成 ui_dialog.py.
代码如下:
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'dialog.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
      return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
      return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
      return QtGui.QApplication.translate(context, text, disambig)

class Ui_Dialog(object):
    def setupUi(self, Dialog):
      Dialog.setObjectName(_fromUtf8("Dialog"))
      Dialog.resize(516, 378)
      self.verticalLayoutWidget = QtGui.QWidget(Dialog)
      self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 13, 501, 361))
      self.verticalLayoutWidget.setObjectName(_fromUtf8("verticalLayoutWidget"))
      self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget)
      self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
      self.label_recieve = QtGui.QLabel(self.verticalLayoutWidget)
      self.label_recieve.setObjectName(_fromUtf8("label_recieve"))
      self.verticalLayout.addWidget(self.label_recieve)
      self.textBrowser_recieve = QtGui.QTextBrowser(self.verticalLayoutWidget)
      self.textBrowser_recieve.setObjectName(_fromUtf8("textBrowser_recieve"))
      self.verticalLayout.addWidget(self.textBrowser_recieve)
      self.label_send = QtGui.QLabel(self.verticalLayoutWidget)
      self.label_send.setObjectName(_fromUtf8("label_send"))
      self.verticalLayout.addWidget(self.label_send)
      self.textEdit_send = QtGui.QTextEdit(self.verticalLayoutWidget)
      self.textEdit_send.setObjectName(_fromUtf8("textEdit_send"))
      self.verticalLayout.addWidget(self.textEdit_send)
      self.horizontalLayout = QtGui.QHBoxLayout()
      self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
      spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
      self.horizontalLayout.addItem(spacerItem)
      self.pushButton_send = QtGui.QPushButton(self.verticalLayoutWidget)
      self.pushButton_send.setObjectName(_fromUtf8("pushButton_send"))
      self.horizontalLayout.addWidget(self.pushButton_send)
      self.verticalLayout.addLayout(self.horizontalLayout)

      self.retranslateUi(Dialog)
      QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
      Dialog.setWindowTitle(_translate("Dialog", "chat", None))
      self.label_recieve.setText(_translate("Dialog", "recieve", None))
      self.label_send.setText(_translate("Dialog", "send", None))
      self.pushButton_send.setText(_translate("Dialog", "SEND", None))
我的main.py文件目前的写法是:
'''
title:chat dialog
author:CCBANG
virsion:0.1
'''
from PyQt4 import QtCore,QtGui
import sys
from ui_dialog import *

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
      return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
      return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
      return QtGui.QApplication.translate(context, text, disambig)

class ChatDialog(QtGui.QDialog):
        def __init__(self,parent=None):
                QtGui.QDialog.__init__(self,parent)               
                self=Ui_Dialog()
               
if __name__=='__main__':
    app = QtGui.QApplication(sys.argv)
    myqq=ChatDialog()
    myqq.show()
    sys.exit(app.exec_())
可是结果并不能显示预先画好的对话框,我的main.py文件该怎么写,尤其是里面的“class ChatDialog(QtGui.QDialog)”该怎么写?
谢谢。
页: [1]
查看完整版本: PyQt4设计对话框时怎么写主文件