最近做個(gè)軟件,用PyQT寫(xiě)的,在實(shí)現(xiàn)菜單欄點(diǎn)擊彈出新窗口的時(shí)候嚴(yán)重被卡殼,發(fā)現(xiàn)用WxPython的思想和方式來(lái)做完全無(wú)法實(shí)現(xiàn)。PyQT的中文資料實(shí)在是太少了。看了點(diǎn)英文資料和QT的資料,逆推PyQT的實(shí)現(xiàn)方法,總算搞定。下面是一個(gè)小demo。

主界面的代碼如下所示:
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from dialog1 import Dialog1
from dialog2 import Dialog2
import sys
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 MainWindow(QtGui.QWidget):
dialog1_signal = QtCore.pyqtSignal() #定義一個(gè)無(wú)參數(shù)的信號(hào),串口設(shè)定與子站初始化信號(hào)
dialog2_signal = QtCore.pyqtSignal() #定義一個(gè)無(wú)參數(shù)的信號(hào),串口設(shè)定與子站初始化信號(hào)
exit_signal = QtCore.pyqtSignal() #定義一個(gè)無(wú)參數(shù)的信號(hào),串口設(shè)定與子站初始化信號(hào)
def __init__(self):
super(MainWindow,self).__init__()
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(400, 300)
self.form = Form
self.pushButton = QtGui.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(70, 90, 75, 23))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.pushButton_2 = QtGui.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(240, 90, 75, 23))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.pushButton_3 = QtGui.QPushButton(Form)
self.pushButton_3.setGeometry(QtCore.QRect(150, 160, 75, 23))
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(170, 40, 54, 16))
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
#信號(hào)連接到指定槽
self.pushButton.clicked.connect(self.on_pushButton_clicked)
self.pushButton_2.clicked.connect(self.on_pushButton_2_clicked)
self.pushButton_3.clicked.connect(self.on_pushButton_3_clicked)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.pushButton.setText(_translate("Form", "進(jìn)入dialog1", None))
self.pushButton_2.setText(_translate("Form", "進(jìn)入dialog2", None))
self.pushButton_3.setText(_translate("Form", "退出", None))
self.label.setText(_translate("Form", "主窗體", None))
def on_pushButton_clicked(self):
self.form.hide()
Form1 = QtGui.QDialog()
ui = Dialog1()
ui.setupUi(Form1)
Form1.show()
Form1.exec_()
self.form.show()
def on_pushButton_3_clicked(self, Form):
#QtCore.QObject.connect( self.pushButton_3, QtCore.SIGNAL("clicked()"), self, QtCore.SLOT(quit()))
#也可以這樣
self.form.close()
def on_pushButton_2_clicked(self):
self.form.close()
Form1 = QtGui.QDialog()
ui = Dialog2()
ui.setupUi(Form1)
Form1.show()
Form1.exec_()
self.form.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
window = MainWindow()
window.setupUi(Form)
Form.show()
sys.exit(app.exec_())
pass
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)標(biāo)題:PyQT實(shí)現(xiàn)多窗口切換-創(chuàng)新互聯(lián)
文章位置:http://www.chinadenli.net/article2/dhdioc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站排名、搜索引擎優(yōu)化、域名注冊(cè)、自適應(yīng)網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容