摘要:這個(gè)示例有一個(gè)按鈕和一個(gè)輸入框,點(diǎn)擊按鈕顯示對(duì)話框,輸入的文本會(huì)顯示在輸入框里。把得到的字符串放到輸入框里。我們創(chuàng)建了一個(gè)有一個(gè)按鈕和一個(gè)標(biāo)簽的的對(duì)話框,我們可以使用這個(gè)功能修改字體樣式。
對(duì)話框
對(duì)話框是一個(gè)現(xiàn)代GUI應(yīng)用不可或缺的一部分。對(duì)話是兩個(gè)人之間的交流,對(duì)話框就是人與電腦之間的對(duì)話。對(duì)話框用來(lái)輸入數(shù)據(jù),修改數(shù)據(jù),修改應(yīng)用設(shè)置等等。
輸入文字QInputDialog提供了一個(gè)簡(jiǎn)單方便的對(duì)話框,可以輸入字符串,數(shù)字或列表。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we receive data from a QInputDialog dialog. Aauthor: Jan Bodnar Website: zetcode.com Last edited: August 2017 """ from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit, QInputDialog, QApplication) import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.btn = QPushButton("Dialog", self) self.btn.move(20, 20) self.btn.clicked.connect(self.showDialog) self.le = QLineEdit(self) self.le.move(130, 22) self.setGeometry(300, 300, 290, 150) self.setWindowTitle("Input dialog") self.show() def showDialog(self): text, ok = QInputDialog.getText(self, "Input Dialog", "Enter your name:") if ok: self.le.setText(str(text)) if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
這個(gè)示例有一個(gè)按鈕和一個(gè)輸入框,點(diǎn)擊按鈕顯示對(duì)話框,輸入的文本會(huì)顯示在輸入框里。
text, ok = QInputDialog.getText(self, "Input Dialog", "Enter your name:")
這是顯示一個(gè)輸入框的代碼。第一個(gè)參數(shù)是輸入框的標(biāo)題,第二個(gè)參數(shù)是輸入框的占位符。對(duì)話框返回輸入內(nèi)容和一個(gè)布爾值,如果點(diǎn)擊的是OK按鈕,布爾值就返回True。
if ok: self.le.setText(str(text))
把得到的字符串放到輸入框里。
程序展示:
選取顏色QColorDialog提供顏色的選擇。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we select a color value from the QColorDialog and change the background color of a QFrame widget. Author: Jan Bodnar Website: zetcode.com Last edited: August 2017 """ from PyQt5.QtWidgets import (QWidget, QPushButton, QFrame, QColorDialog, QApplication) from PyQt5.QtGui import QColor import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): col = QColor(0, 0, 0) self.btn = QPushButton("Dialog", self) self.btn.move(20, 20) self.btn.clicked.connect(self.showDialog) self.frm = QFrame(self) self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name()) self.frm.setGeometry(130, 22, 100, 100) self.setGeometry(300, 300, 250, 180) self.setWindowTitle("Color dialog") self.show() def showDialog(self): col = QColorDialog.getColor() if col.isValid(): self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name()) if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
例子里有一個(gè)按鈕和一個(gè)QFrame,默認(rèn)的背景顏色為黑色,我們可以使用QColorDialog改變背景顏色。
col = QColor(0, 0, 0)
初始化QtGui.QFrame的背景顏色。
col = QColorDialog.getColor()
彈出一個(gè)QColorDialog對(duì)話框。
if col.isValid(): self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name())
我們可以預(yù)覽顏色,如果點(diǎn)擊取消按鈕,沒(méi)有顏色值返回,如果顏色是我們想要的,就從取色框里選擇這個(gè)顏色。
程序展示:
選擇字體QFontDialog能做字體的選擇。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we select a font name and change the font of a label. Author: Jan Bodnar Website: zetcode.com Last edited: August 2017 """ from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QPushButton, QSizePolicy, QLabel, QFontDialog, QApplication) import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): vbox = QVBoxLayout() btn = QPushButton("Dialog", self) btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) btn.move(20, 20) vbox.addWidget(btn) btn.clicked.connect(self.showDialog) self.lbl = QLabel("Knowledge only matters", self) self.lbl.move(130, 20) vbox.addWidget(self.lbl) self.setLayout(vbox) self.setGeometry(300, 300, 250, 180) self.setWindowTitle("Font dialog") self.show() def showDialog(self): font, ok = QFontDialog.getFont() if ok: self.lbl.setFont(font) if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
我們創(chuàng)建了一個(gè)有一個(gè)按鈕和一個(gè)標(biāo)簽的QFontDialog的對(duì)話框,我們可以使用這個(gè)功能修改字體樣式。
font, ok = QFontDialog.getFont()
彈出一個(gè)字體選擇對(duì)話框。getFont()方法返回一個(gè)字體名稱和狀態(tài)信息。狀態(tài)信息有OK和其他兩種。
if ok: self.label.setFont(font)
如果點(diǎn)擊OK,標(biāo)簽的字體就會(huì)隨之更改。
程序展示:
選擇文件QFileDialog給用戶提供文件或者文件夾選擇的功能。能打開(kāi)和保存文件。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we select a file with a QFileDialog and display its contents in a QTextEdit. Author: Jan Bodnar Website: zetcode.com Last edited: August 2017 """ from PyQt5.QtWidgets import (QMainWindow, QTextEdit, QAction, QFileDialog, QApplication) from PyQt5.QtGui import QIcon import sys class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.textEdit = QTextEdit() self.setCentralWidget(self.textEdit) self.statusBar() openFile = QAction(QIcon("open.png"), "Open", self) openFile.setShortcut("Ctrl+O") openFile.setStatusTip("Open new File") openFile.triggered.connect(self.showDialog) menubar = self.menuBar() fileMenu = menubar.addMenu("&File") fileMenu.addAction(openFile) self.setGeometry(300, 300, 350, 300) self.setWindowTitle("File dialog") self.show() def showDialog(self): fname = QFileDialog.getOpenFileName(self, "Open file", "/home") if fname[0]: f = open(fname[0], "r") with f: data = f.read() self.textEdit.setText(data) if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
本例中有一個(gè)菜單欄,一個(gè)置中的文本編輯框,一個(gè)狀態(tài)欄。點(diǎn)擊菜單欄選項(xiàng)會(huì)彈出一個(gè)QtGui.QFileDialog對(duì)話框,在這個(gè)對(duì)話框里,你能選擇文件,然后文件的內(nèi)容就會(huì)顯示在文本編輯框里。
class Example(QMainWindow): def __init__(self): super().__init__() self.initUI()
這里設(shè)置了一個(gè)文本編輯框,文本編輯框是基于QMainWindow組件的。
fname = QFileDialog.getOpenFileName(self, "Open file", "/home")
彈出QFileDialog窗口。getOpenFileName()方法的第一個(gè)參數(shù)是說(shuō)明文字,第二個(gè)參數(shù)是默認(rèn)打開(kāi)的文件夾路徑。默認(rèn)情況下顯示所有類型的文件。
if fname[0]: f = open(fname[0], "r") with f: data = f.read() self.textEdit.setText(data)
讀取選中的文件,并顯示在文本編輯框內(nèi)(但是打開(kāi)HTML文件時(shí),是渲染后的結(jié)果,汗)。
程序展示:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42984.html
摘要:工具可以直接使用方式安裝和的環(huán)境配置使用集成開(kāi)發(fā)工具的小白,在安裝庫(kù)以后,還要對(duì)和進(jìn)行環(huán)境配置,將其集成到中。如果小白的或安裝在其他路徑下,則從對(duì)應(yīng)的目錄找到,或者在資源管理器中搜索文件找到安裝路徑。 ...
摘要:控件是一個(gè)用戶界面的基本控件,它提供了基本的應(yīng)用構(gòu)造器。默認(rèn)情況下,構(gòu)造器是沒(méi)有父級(jí)的,沒(méi)有父級(jí)的構(gòu)造器被稱為窗口。這就意味著,我們調(diào)用了兩個(gè)構(gòu)造器,一個(gè)是這個(gè)類本身的,一個(gè)是這個(gè)類繼承的。構(gòu)造器方法返回父級(jí)的對(duì)象。 本章學(xué)習(xí)Qt的基本功能 例1,簡(jiǎn)單的窗口 這個(gè)簡(jiǎn)單的小例子展示的是一個(gè)小窗口。但是我們可以在這個(gè)小窗口上面做很多事情,改變大小,最大化,最小化等,這需要很多代碼才能實(shí)現(xiàn)。...
摘要:實(shí)時(shí)在文本框顯示內(nèi)容引入這個(gè)函數(shù)綁定定時(shí)器自動(dòng)執(zhí)行在類中定義一個(gè)定時(shí)器并在構(gòu)造函數(shù)中設(shè)置啟動(dòng)及其信號(hào)和槽設(shè)置計(jì)時(shí)間隔并啟動(dòng)計(jì)時(shí)結(jié)束調(diào)用方法注意不要加引入這個(gè)參考 qt designer使用 開(kāi)始 新建項(xiàng)目(eric6 項(xiàng)目) 新建窗體(eric6 窗體) 編輯界面(轉(zhuǎn)到qt designer) 保存 編譯窗體(轉(zhuǎn)到eric6 窗體) 運(yùn)行(查看頁(yè)面效果) 頁(yè)面縮放效果(qt d...
閱讀 1404·2021-11-25 09:43
閱讀 1960·2021-11-12 10:36
閱讀 6282·2021-09-22 15:05
閱讀 3534·2019-08-30 15:55
閱讀 2088·2019-08-26 14:06
閱讀 3699·2019-08-26 12:17
閱讀 564·2019-08-23 17:55
閱讀 2510·2019-08-23 16:23