最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python QT組件庫(kù)qtwidgets的使用

 更新時(shí)間:2020年11月02日 10:03:09   作者:州的先生  
這篇文章主要介紹了Python QT組件庫(kù)qtwidgets的使用,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下

雖然Qt提供了不少現(xiàn)成的組件,但是在Python中使用PyQt5或PySide2進(jìn)行圖形界面程序開發(fā)的過(guò)程,還是免不了要根據(jù)自己的需求組合一些小部件以形成新的自定義組件。

最近州的先生在寫一個(gè)桌面圖形界面的登錄密碼框的過(guò)程中,發(fā)現(xiàn)了這樣一個(gè)小巧的自定義組件庫(kù)。

其目前提供了密碼輸入框組件、漸變組件、均衡器組件、調(diào)色板組件。

安裝

直接使用 pip 工具進(jìn)行安裝即可,命令如下:

pip install qtwidgets

密碼輸入框

在PyQt5和PySide2中,我們一般使用QLineEdit()小部件,通過(guò)設(shè)置它的EchoMode屬性來(lái)讓輸入的文本顯示星號(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)輸入密碼為密文,然后通過(guò)一個(gè)按鈕允許用戶查看自己輸入的密碼,是一個(gè)很常見的功能。

如果我們要基于QLineEdit()組件來(lái)擴(kuò)展的話,就得花很多時(shí)間和代碼來(lái)實(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()

來(lái)看看使用qtwidgets提供的密碼輸入框的效果:

除了密碼輸入框,qtwidgets還提供了幾個(gè)擴(kuò)展的組件。

漸變組件

漸變組件Gradient()提供了方便的界面來(lái)設(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)。

下面,我們來(lái)演示一下:

調(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),下面我們來(lái)演示一下:

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)用的理解。

  文章版權(quán)所有:州的先生博客,轉(zhuǎn)載必須保留出處及原文鏈接

  原文地址:https://zmister.com/archives/1594.html

以上就是Python QT組件庫(kù)qtwidgets的使用的詳細(xì)內(nèi)容,更多關(guān)于Python qtwidgets庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在pycharm中輸入import torch報(bào)錯(cuò)如何解決

    在pycharm中輸入import torch報(bào)錯(cuò)如何解決

    這篇文章主要介紹了在pycharm中輸入import torch報(bào)錯(cuò)如何解決問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • python?snap7讀寫PLC的操作方法

    python?snap7讀寫PLC的操作方法

    這篇文章主要介紹了python?snap7讀寫PLC的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Python 比較兩個(gè) CSV 文件的三種方法并打印出差異

    Python 比較兩個(gè) CSV 文件的三種方法并打印出差異

    這篇文章主要介紹了Python 比較兩個(gè) CSV 文件并打印出差異,本文將討論比較兩個(gè) CSV 文件的各種方法,我們將包括執(zhí)行此操作的最“Pythonic”方式和可幫助簡(jiǎn)化此任務(wù)的外部 Python 模塊,需要的朋友可以參考下
    2023-06-06
  • 基于Google的Python編碼規(guī)范標(biāo)準(zhǔn)

    基于Google的Python編碼規(guī)范標(biāo)準(zhǔn)

    這篇文章主要介紹了基于Google的Python編碼規(guī)范標(biāo)準(zhǔn),其中包含了分號(hào),行長(zhǎng)度,括號(hào),縮進(jìn),空行,空格等基本符號(hào)的使用規(guī)則,有需要的朋友可以參考下
    2021-08-08
  • pygame游戲之旅 添加游戲暫停功能

    pygame游戲之旅 添加游戲暫停功能

    這篇文章主要為大家詳細(xì)介紹了pygame游戲之旅的第13篇, 教大家如何添加游戲暫停功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆實(shí)例

    Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆實(shí)例

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆,結(jié)合實(shí)例形式分析了Python完全樹定義及堆排序功能實(shí)現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解

    PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解

    這篇文章主要介紹了PyTorch中torch.tensor與torch.Tensor的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python json模塊使用實(shí)例

    Python json模塊使用實(shí)例

    這篇文章主要介紹了Python json模塊使用實(shí)例,本文給出多個(gè)使用代碼實(shí)例,需要的朋友可以參考下
    2015-04-04
  • Python中if-else的語(yǔ)法用法示例代碼

    Python中if-else的語(yǔ)法用法示例代碼

    Python中的if-else決策控制是重要的一種流程控制,顧名思,Python中的決策允許我們?yōu)樘囟Q策運(yùn)行特定的代碼塊,這篇文章主要介紹了Python中if-else語(yǔ)法用法的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • python解析中國(guó)天氣網(wǎng)的天氣數(shù)據(jù)

    python解析中國(guó)天氣網(wǎng)的天氣數(shù)據(jù)

    最近學(xué)習(xí)python 感覺這門腳本語(yǔ)言十分靈活 而且功能十分強(qiáng)大 尤其是他re庫(kù)用于正則匹配十分強(qiáng)大,寫了個(gè)例子解析中國(guó)天氣網(wǎng)
    2014-03-03

最新評(píng)論

雷州市| 阿克苏市| 丰镇市| 磴口县| 洞头县| 舒兰市| 大埔县| 卓尼县| 乌兰浩特市| 拉孜县| 西藏| 湖州市| 璧山县| 泾阳县| 山西省| 凌海市| 屏东市| 宁城县| 陈巴尔虎旗| 鲁甸县| 贞丰县| 金溪县| 新竹县| 乌苏市| 阿尔山市| 瑞丽市| 龙里县| 分宜县| 永宁县| 开远市| 浠水县| 卫辉市| 本溪市| 桑植县| 无为县| 大名县| 黑水县| 罗源县| 宣恩县| 大庆市| 固始县|