话说PyQt4,是不是版本有点乱啊,一个功能学了几个地方,都不一样,有的没反应,有的出错,总算拼出来了。
示例文档是表现这个对话框
当然是用designer画出来的,转换成py文件。
下面是主程序代码
import sys
from PyQt4 import QtGui, QtCore
from pyqt.dialog_ui import Ui_notepad # 就是上面的图框的类
class myForm(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_notepad()
self.ui.setupUi(self)
self.connect(self.ui.fiileButton, QtCore .SIGNAL("clicked()"), self.fileOpen)
# 这样连接是不是比那个QtCore.QObject.connect(self.ui.button_open,QtCore.SIGNAL("clicked()"),self.file_dialog)来得简单一点?
self.connect(self.ui.colorButton, QtCore .SIGNAL("clicked()"), self.getColor)
self.connect(self.ui.fontButton, QtCore .SIGNAL("clicked()"), self.getFont)
def fileOpen(self):
s = QtGui.QFileDialog.getOpenFileName(self, "Open File dialog", "/", "python files(*.py)") # 对话框的定制参数
from os.path import isfile
if isfile(s):
self.ui.lineEdit.setText(str(s))
def getColor(self):
c = QtGui.QColorDialog.getColor()
if c.isValid():
self.ui.lineEdit_2 .setText(c.name()) # 显示颜色值比较靠谱
def getFont(self):
f, ok = QtGui.QFontDialog.getFont() # 这个返回两个值,字体,OK
if ok:
self.ui.lineEdit_3.setFont(f)
app = QtGui.QApplication(sys.argv)
myapp = myForm()
myapp.show()
sys.exit(app.exec_())
最后显示一下成就