PyQt学习(5)

来源:互联网 发布:java文件路径怎么写 编辑:程序博客网 时间:2024/06/05 11:40

由ui生成代码,然后在主程序中应用

示例代码:

from PyQt4 import QtCore, QtGuifrom PyQt4.QtGui import QDialogtry:    _fromUtf8 = QtCore.QString.fromUtf8except AttributeError:    def _fromUtf8(s):        return stry:    _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(492, 422)        self.gridLayout = QtGui.QGridLayout(Dialog)        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))        self.label1 = QtGui.QLabel(Dialog)        self.label1.setObjectName(_fromUtf8("label1"))        self.gridLayout.addWidget(self.label1, 0, 0, 1, 1)        self.mailLineEdit = QtGui.QLineEdit(Dialog)        self.mailLineEdit.setObjectName(_fromUtf8("mailLineEdit"))        self.gridLayout.addWidget(self.mailLineEdit, 0, 1, 1, 1)        self.label2 = QtGui.QLabel(Dialog)        self.label2.setObjectName(_fromUtf8("label2"))        self.gridLayout.addWidget(self.label2, 1, 0, 1, 1)        self.addressLineEdit = QtGui.QLineEdit(Dialog)        self.addressLineEdit.setObjectName(_fromUtf8("addressLineEdit"))        self.gridLayout.addWidget(self.addressLineEdit, 1, 1, 1, 1)        self.label3 = QtGui.QLabel(Dialog)        self.label3.setObjectName(_fromUtf8("label3"))        self.gridLayout.addWidget(self.label3, 2, 0, 1, 1)        self.codeLineEdit = QtGui.QLineEdit(Dialog)        self.codeLineEdit.setObjectName(_fromUtf8("codeLineEdit"))        self.gridLayout.addWidget(self.codeLineEdit, 2, 1, 1, 1)        self.label4 = QtGui.QLabel(Dialog)        self.label4.setObjectName(_fromUtf8("label4"))        self.gridLayout.addWidget(self.label4, 3, 0, 1, 1)        self.mpLineEdit = QtGui.QLineEdit(Dialog)        self.mpLineEdit.setObjectName(_fromUtf8("mpLineEdit"))        self.gridLayout.addWidget(self.mpLineEdit, 3, 1, 1, 1)        self.receiveCheckBox = QtGui.QCheckBox(Dialog)        self.receiveCheckBox.setObjectName(_fromUtf8("receiveCheckBox"))        self.gridLayout.addWidget(self.receiveCheckBox, 3, 2, 1, 1)        self.label5 = QtGui.QLabel(Dialog)        self.label5.setObjectName(_fromUtf8("label5"))        self.gridLayout.addWidget(self.label5, 4, 0, 1, 1)        self.phoneLineEdit = QtGui.QLineEdit(Dialog)        self.phoneLineEdit.setObjectName(_fromUtf8("phoneLineEdit"))        self.gridLayout.addWidget(self.phoneLineEdit, 4, 1, 1, 1)        self.retranslateUi(Dialog)        QtCore.QMetaObject.connectSlotsByName(Dialog)    def retranslateUi(self, Dialog):        Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))        self.label1.setText(_translate("Dialog", "电子邮件:", None))        self.label2.setText(_translate("Dialog", "联系地址:", None))        self.label3.setText(_translate("Dialog", "邮政编码", None))        self.label4.setText(_translate("Dialog", "移动电话", None))        self.receiveCheckBox.setText(_translate("Dialog", "接收留言", None))        self.label5.setText(_translate("Dialog", "办公电话", None))class Contact(QDialog,Ui_Dialog):    def __init__(self,parent=None):        super(Contact,self).__init__(parent)        self.setupUi(self)if __name__ == "__main__":    import sys    app = QtGui.QApplication(sys.argv)    Dialog = QtGui.QDialog()    ui = Contact()    ui.setupUi(Dialog)    Dialog.show()    sys.exit(app.exec_())

参考PyQt学习(4)

#coding=utf-8#文件功能:多继承from PyQt4.QtCore import *from PyQt4.QtGui import *import sysimport baseinfo,conTact,detailUIQTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))class StockDialog(QDialog):    def __init__(self,parent=None):        super(StockDialog,self).__init__(parent)        self.setWindowTitle(self.tr("综合布局实例"))        mainSplitter=QSplitter(Qt.Horizontal)        mainSplitter.setOpaqueResize(True)        self.listWidget=QListWidget(mainSplitter)        self.listWidget.insertItem(0,self.tr("个人基本资料"))        self.listWidget.insertItem(1,self.tr("联系方式"))        self.listWidget.insertItem(2,self.tr("详细信息"))        frame= QFrame(mainSplitter)        self.stack = QStackedWidget()        self.stack.setFrameStyle(QFrame.Panel | QFrame.Raised)        baseInfo = baseinfo.BaseInfo()        contact =conTact.Contact()        detail =detailUI.Detail()        self.stack.addWidget(baseInfo)        self.stack.addWidget(contact)        self.stack.addWidget(detail)        amendPushButton = QPushButton(self.tr("修改"))        closePushButton = QPushButton(self.tr("关闭"))        buttonLayout = QHBoxLayout()        buttonLayout.addStretch(1)        buttonLayout.addWidget(amendPushButton)        buttonLayout.addWidget(closePushButton)        mainLayout = QVBoxLayout(frame)        mainLayout.setMargin(10)        mainLayout.setSpacing(6)        mainLayout.addWidget(self.stack)        mainLayout.addLayout(buttonLayout)        self.connect(self.listWidget, SIGNAL("currentRowChanged(int)"), self.stack, SLOT("setCurrentIndex(int)"))        self.connect(closePushButton, SIGNAL("clicked()"), self, SLOT("close()"))        layout = QHBoxLayout(self)        layout.addWidget(mainSplitter)        self.setLayout(layout)        self.faderWidget = None        self.connect(self.listWidget, SIGNAL("currentItemChanged(QListWidgetItem,QListWidgetItem"),self.changePage)        self.connect(self.stack, SIGNAL("currentChanged(int)"), self.fadeInWidget)    def changePage(self, current, previous):        if not current:            current=previous            self.stack.setCurrentWidget(current)    def fadeInWidget(self,index):        self.faderWidget=FaderWidget(self.stack.widget(index))        self.faderWidget.start()class FaderWidget(QWidget):    def __init__(self,parent=None):        super(FaderWidget,self).__init__(parent)        if parent:            self.startColor=parent.palette().window().color()        else:            self.startColor=Qt.white        self.currentAlpha = 0        self.duration = 1000        self.timer = QTimer(self)        self.connect(self.timer, SIGNAL("timeout()"), self.update)        self.setAttribute(Qt.WA_DeleteOnClose)        self.resize(parent.size())    def start(self):        self.currentAlpha=255        self.timer.start(100)        self.show()    def paintEvent(self,event):        semiTransparentColor = self.startColor        semiTransparentColor.setAlpha(self.currentAlpha)        painter = QPainter(self)        painter.fillRect(self.rect(), semiTransparentColor)        self.currentAlpha -= (255 * self.timer.interval() / self.duration)        if self.currentAlpha<=0:            self.timer.stop()            self.close()app=QApplication(sys.argv)main=StockDialog()main.show()app.exec_()



原创粉丝点击