對話框窗體或對話框是現代GUI應用不可或缺的一部分。dialog定義為兩個或多個人之間的交談。在計算機程序中dialog是一個窗體,用來和程序“交談”。對話框用來輸入數據、修改數據、改變程序設置等等。對話框是用戶和計算機程序溝通的重要手段。
QColorDialog
顏色對話框為定制顏色提供一個對話框組件。
#!/usr/bin/python
# -*- coding: utf-8 -*-# colordialog.pyimport sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass Example(QtGui.QWidget):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):color = QtGui.QColor(0, 0, 0)self.button = QtGui.QPushButton('Dialog', self)self.button.setFocusPolicy(QtCore.Qt.NoFocus)self.button.move(20, 20)self.connect(self.button, QtCore.SIGNAL('clicked()'),self.showDialog)self.setFocus()self.widget = QtGui.QWidget(self)self.widget.setStyleSheet("QWidget { background-color: %s }"% color.name())self.widget.setGeometry(130, 22, 100, 100)self.setWindowTitle('ColorDialog')self.setGeometry(300, 300, 250, 180)def showDialog(self):col = QtGui.QColorDialog.getColor()if col.isValid():self.widget.setStyleSheet("QWidget { background-color: %s }"% col.name())if __name__ == '__main__':app = QtGui.QApplication(sys.argv)ex = Example()ex.show()app.exec_()
該例子顯示一個按鈕和一個 QWidge 對象。組件的背景設為黑色,我們可以用 QColorDialog 來改變它的背景。
color = QtGui.QColorDialog.getColor()
這行代碼將會彈出一個 QColorDialog 。
if col.isValid():self.widget.setStyleSheet("QWidget { background-color: %s }"% col.name())
檢查顏色是否有效,如果點擊了取消按鈕,將返回無效的顏色。如果顏色有些,我們使用樣式修改背景顏色。
QFontDialog
QFontDialog 是一個用來選擇字體的對話框組件。
#!/usr/bin/python
# -*- coding: utf-8 -*-# fontdialog.pyimport sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass Example(QtGui.QWidget):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):hbox = QtGui.QHBoxLayout()button = QtGui.QPushButton('Dialog', self)button.setFocusPolicy(QtCore.Qt.NoFocus)button.move(20, 20)hbox.addWidget(button)self.connect(button, QtCore.SIGNAL('clicked()'), self.showDialog)self.label = QtGui.QLabel('Knowledge only matters', self)self.label.move(130, 20)hbox.addWidget(self.label, 1)self.setLayout(hbox)self.setWindowTitle('FontDialog')self.setGeometry(300, 300, 250, 110)def showDialog(self):font, ok = QtGui.QFontDialog.getFont()if ok:self.label.setFont(font)if __name__ == '__main__':app = QtGui.QApplication(sys.argv)ex = Example()ex.show()app.exec_()
該例子中,我們有一個按鈕和一個標簽。我們用 QFontDialog 改變標簽的字體。
hbox.addWidget(self.label, 1)
我們把標簽加入到水平框布局中。設置延展因素為1,當我們選擇不同的字體時,文字可能變得更大。否則標簽可能顯示不完全。
if ok:self.label.setFont(font)
如果點擊確定,標簽的字體將會改變。
QFileDialog
QFileDialog 允許用戶選擇文件或文件夾,可選擇文件來打開和保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-# openfiledialog.pyimport sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass Example(QtGui.QMainWindow):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):self.textEdit = QtGui.QTextEdit()self.setCentralWidget(self.textEdit)self.statusBar()self.setFocus()openFile = QtGui.QAction(QtGui.QIcon('open.png'), 'Open', self)openFile.setShortcut('Ctrl+O')openFile.setStatusTip('Open new File')self.connect(openFile, QtCore.SIGNAL('triggered()'), self.showDialog)menubar = self.menuBar()fileMenu = menubar.addMenu('&File')fileMenu.addAction(openFile)self.setGeometry(300, 300, 350, 300)self.setWindowTitle('OpenFile')def showDialog(self):filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file','/home')fname = open(filename)data = fname.read()self.textEdit.setText(data)app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
app.exec_()
這個例子顯示一個菜單,中間放置一個文本編輯框,還有一個狀態欄。狀態機僅為了設計目的顯示。菜單項顯示 QFileDialog 來選擇文件,文件的內容加載進文本編輯器。
class Example(QtGui.QMainWindow):def __init__(self):super(Example, self).__init__()
這個例子建立在 QMainWindow 組件上,因為我們需要在中間設置文本編輯器。
fname = open(filename)
data = fname.read()
self.textEdit.setText(data)
讀取選擇的文件,并把文件內容放入文本編輯器。
fname = open(filename)
data = fname.read()
self.textEdit.setText(data)
讀取選擇的文件,并把文件內容放入文本編輯器。
PyQt4教程這的部分我們致力于布局管理。
?
?
本站文章為?寶寶巴士 SD.Team?原創,轉載務必在明顯處注明:(作者官方網站:?寶寶巴士?)?
轉載自【寶寶巴士SuperDo團隊】?原文鏈接:?http://www.cnblogs.com/superdo/p/4528239.html
?
?