pythonqt库_Python QT组件库qtwidgets的使用
雖然Qt提供了不少現(xiàn)成的組件,但是在Python中使用PyQt5或PySide2進(jìn)行圖形界面程序開發(fā)的過程,還是免不了要根據(jù)自己的需求組合一些小部件以形成新的自定義組件。
最近州的先生在寫一個(gè)桌面圖形界面的登錄密碼框的過程中,發(fā)現(xiàn)了這樣一個(gè)小巧的自定義組件庫(kù)。
其目前提供了密碼輸入框組件、漸變組件、均衡器組件、調(diào)色板組件。
安裝
直接使用 pip 工具進(jìn)行安裝即可,命令如下:
pip install qtwidgets
密碼輸入框
在PyQt5和PySide2中,我們一般使用QLineEdit()小部件,通過設(shè)置它的EchoMode屬性來讓輸入的文本顯示星號(hào)而非明文,代碼如下所示:
# encoding:utf-8
from PySide2 import QtWidgets
import sys
class Widget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("州的先生-zmister.com")
self.pwd_input = QtWidgets.QLineEdit(self)
self.pwd_input.setEchoMode(QtWidgets.QLineEdit.Password)
def main():
app = QtWidgets.QApplication(sys.argv)
gui = Widget()
gui.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
運(yùn)行后的效果如下所示:
在現(xiàn)代的登錄界面中,默認(rèn)輸入密碼為密文,然后通過一個(gè)按鈕允許用戶查看自己輸入的密碼,是一個(gè)很常見的功能。
如果我們要基于QLineEdit()組件來擴(kuò)展的話,就得花很多時(shí)間和代碼來實(shí)現(xiàn)。借助qtwidgets模塊,咱們就可以少造一點(diǎn)輪子了。
from PySide2 import QtWidgets
from qtwidgets import PasswordEdit
import sys
class Widget(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("州的先生-zmister.com")
# self.pwd_input = QtWidgets.QLineEdit(self)
self.pwd_input = PasswordEdit()
self.setCentralWidget(self.pwd_input)
def main():
app = QtWidgets.QApplication(sys.argv)
gui = Widget()
gui.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
來看看使用qtwidgets提供的密碼輸入框的效果:
除了密碼輸入框,qtwidgets還提供了幾個(gè)擴(kuò)展的組件。
漸變組件
漸變組件Gradient()提供了方便的界面來設(shè)計(jì)應(yīng)用程序中的線性漸變。只需創(chuàng)建對(duì)象的實(shí)例即可創(chuàng)建新的漸變器。
from PySide2 import QtWidgets
from qtwidgets import PasswordEdit,Gradient
import sys
class Widget(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("州的先生-zmister.com")
self.gradient = Gradient()
self.setCentralWidget(self.gradient)
def main():
app = QtWidgets.QApplication(sys.argv)
gui = Widget()
gui.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
默認(rèn)的漸變顏色是從黑到白的。停止點(diǎn)使用一個(gè)紅色框進(jìn)行標(biāo)記。漸變器組件創(chuàng)建之后,我們可以在圖形界面上進(jìn)行編輯:
在漸變器上雙擊可以添加標(biāo)記點(diǎn),其顏色與右邊的顏色一致;
拖動(dòng)標(biāo)記點(diǎn),可以改變漸變色的范圍和位置;
右鍵單擊新建的標(biāo)記點(diǎn),可以編輯標(biāo)記點(diǎn)的顏色;
雙擊新建的標(biāo)記點(diǎn),可以刪除此標(biāo)記點(diǎn)。
下面,我們來演示一下:
調(diào)色板
qtwidgets提供了三種調(diào)色板,分別是:
水平調(diào)色板PaletteHorizontal
垂直調(diào)色板PaletteVertical
網(wǎng)格調(diào)色板PaletteGrid
這三個(gè)調(diào)色板除了排列方式有所不同外,其他的使用方法都一樣,都接受顏色列表參數(shù),或預(yù)置的幾個(gè)顏色族,都支持selected選擇信號(hào),下面我們來演示一下:
from PySide2 import QtWidgets
from qtwidgets import PasswordEdit,Gradient,PaletteGrid,PaletteHorizontal,PaletteVertical
import sys
class Widget(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("州的先生-zmister.com")
self.palette_1 = PaletteGrid('category10')
self.palette_2 = PaletteHorizontal('17undertones')
self.palette_3 = PaletteVertical(['#000003', '#160B39', '#410967', '#6A176E', '#932567', '#BA3655', '#DC5039', '#F2751A', '#FBA40A', '#F6D542', '#FCFEA4'])
self.palette_1.selected.connect(self.selected_color)
self.label = QtWidgets.QLabel("點(diǎn)擊了:")
self.widget = QtWidgets.QWidget()
self.widget_layout = QtWidgets.QVBoxLayout()
self.widget.setLayout(self.widget_layout)
self.widget_layout.addWidget(self.palette_1)
self.widget_layout.addWidget(self.palette_2)
self.widget_layout.addWidget(self.palette_3)
self.widget_layout.addWidget(self.label)
self.setCentralWidget(self.widget)
def selected_color(self,value):
self.label.setText("點(diǎn)擊了:{}".format(value))
def main():
app = QtWidgets.QApplication(sys.argv)
gui = Widget()
gui.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
其運(yùn)行效果為:
最后
還有一個(gè)均衡器組件,用于動(dòng)態(tài)可視化輸出頻率的變化,在這里就不演示了,有興趣的小伙伴可以自己試一試。
除此之外,所有這些組件也都是基于Qt現(xiàn)有組件進(jìn)行的封裝,學(xué)有余力的小伙伴還可以查看一下它們的源碼實(shí)現(xiàn),以加深對(duì)Qt各個(gè)原生組件運(yùn)用的理解。
以上就是Python QT組件庫(kù)qtwidgets的使用的詳細(xì)內(nèi)容,更多關(guān)于Python qtwidgets庫(kù)的資料請(qǐng)關(guān)注python博客其它相關(guān)文章!
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的pythonqt库_Python QT组件库qtwidgets的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opporeno5和reno4哪个好 怎
- 下一篇: pb 修改数据窗口种指定字段位置_第三章