本能地对手写代码作UI不感冒。因为UI要作专业设计啊,你用代码写的同事怎么美化?
但是对设计师作的ui文件,又不太会用。勉强套一个代码的样式,对一个ui会用了,有两个代码就又乱了。
rapid gui programing with python and qt第五章,终于有了一个主窗口和子窗口的例子。虽然书上用的代码,我用设计师也做出来了。
先画好两个UI,只布元素,漂亮是美工的事了。
这两个图片画好,保存,转py格式,导入主程序中。然后用代码表示为:
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from CHP5.main import Ui_main
from CHP5.setPPD import Ui_setPropertiesDlg
class dialog(QDialog): #新建类,导入对话框的ui或者说,设计师作的ui类的实例,就这个类的属性
def __init__(self, parent=None):
super(dialog, self).__init__(parent)
self.ui = Ui_setPropertiesDlg()
self.ui.setupUi(self)
class mytest(QDialog):
def __init__(self, parent=None):
super(mytest, self).__init__(parent)
self.ui = Ui_main() # ui文件在这里使用,这里用的主窗口。
self.ui.setupUi(self)
self.width = 1
self.beveled = False
self.style = None
self.ui.label_2.setText(str(self.width)) # 对主窗口元素作初始化
self.ui.label_4.setText(str(self.beveled))
self.ui.label_6.setText(str(self.style))
self.connect(self.ui.buttonSetup, SIGNAL("clicked()"), self.setUpPen) # 连接按钮的作用
def setUpPen(self): # 定义按钮的方法
test_dialog = dialog() # 对话框类的实例化
if test_dialog.exec_(): #如果执行的话
self.width = test_dialog.ui.spinBox .value()
self.beveled = test_dialog.ui.checkBox.checkState()
self.style = test_dialog.ui.comboBox.currentText()
self.updateData() # 更新主窗口数据
def updateData(self): #更新数据
self.ui.label_2.setText(str(self.width))
self.ui.label_4.setText(str(self.beveled))
self.ui.label_6.setText(str(self.style))
app = QApplication(sys.argv)
form = mytest()
form.show()
app.exec_()
原文:http://blog.csdn.net/python2014/article/details/21807689