91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python QT組件庫qtwidgets的使用方法

發布時間:2020-11-03 15:27:14 來源:億速云 閱讀:312 作者:Leah 欄目:開發技術

Python QT組件庫qtwidgets的使用方法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

最近州的先生在寫一個桌面圖形界面的登錄密碼框的過程中,發現了這樣一個小巧的自定義組件庫。

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

Python QT組件庫qtwidgets的使用方法

安裝

直接使用 pip 工具進行安裝即可,命令如下:

pip install qtwidgets

密碼輸入框

在PyQt5和PySide2中,我們一般使用QLineEdit()小部件,通過設置它的EchoMode屬性來讓輸入的文本顯示星號而非明文,代碼如下所示:

# 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()

運行后的效果如下所示:

Python QT組件庫qtwidgets的使用方法

在現代的登錄界面中,默認輸入密碼為密文,然后通過一個按鈕允許用戶查看自己輸入的密碼,是一個很常見的功能。

如果我們要基于QLineEdit()組件來擴展的話,就得花很多時間和代碼來實現。借助qtwidgets模塊,咱們就可以少造一點輪子了。

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提供的密碼輸入框的效果:

Python QT組件庫qtwidgets的使用方法

除了密碼輸入框,qtwidgets還提供了幾個擴展的組件。

漸變組件

漸變組件Gradient()提供了方便的界面來設計應用程序中的線性漸變。只需創建對象的實例即可創建新的漸變器。

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()

Python QT組件庫qtwidgets的使用方法

默認的漸變顏色是從黑到白的。停止點使用一個紅色框進行標記。漸變器組件創建之后,我們可以在圖形界面上進行編輯:

  • 在漸變器上雙擊可以添加標記點,其顏色與右邊的顏色一致;
  • 拖動標記點,可以改變漸變色的范圍和位置;
  • 右鍵單擊新建的標記點,可以編輯標記點的顏色;
  • 雙擊新建的標記點,可以刪除此標記點。

下面,我們來演示一下:

Python QT組件庫qtwidgets的使用方法

調色板

qtwidgets提供了三種調色板,分別是:

  • 水平調色板PaletteHorizontal
  • 垂直調色板PaletteVertical
  • 網格調色板PaletteGrid

這三個調色板除了排列方式有所不同外,其他的使用方法都一樣,都接受顏色列表參數,或預置的幾個顏色族,都支持selected選擇信號,下面我們來演示一下:

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("點擊了:")
  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("點擊了:{}".format(value))

def main():
 app = QtWidgets.QApplication(sys.argv)
 gui = Widget()
 gui.show()
 sys.exit(app.exec_())

if __name__ == '__main__':
 main()

其運行效果為:

Python QT組件庫qtwidgets的使用方法

最后

還有一個均衡器組件,用于動態可視化輸出頻率的變化,在這里就不演示了,有興趣的小伙伴可以自己試一試。

Python QT組件庫qtwidgets的使用方法

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴和县| 浮梁县| 龙里县| 杭锦后旗| 靖江市| 鹿泉市| 和林格尔县| 隆昌县| 江门市| 洛宁县| 大宁县| 泸水县| 尚志市| 成都市| 洪洞县| 当涂县| 恭城| 福建省| 越西县| 宁晋县| 湘潭市| 措勤县| 仁布县| 迁安市| 怀仁县| 通榆县| 鹤峰县| 万安县| 扬中市| 邢台市| 扶风县| 肇庆市| 明星| 湘潭县| 广德县| 洛浦县| 安陆市| 开鲁县| 封丘县| 正定县| 星子县|