日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyqt5教程10:Widgets2组件

發(fā)布時(shí)間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyqt5教程10:Widgets2组件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 PyQt5 widgets II

在本章中,我們將繼續(xù)介紹 PyQt5 小部件。我們將介紹 QPixmap、QLineEdit、QSplitter 和 QComboBox。

2 PyQt5 QPixmap

QPixmap 是用于處理圖像的小部件之一。它針對(duì)在屏幕上顯示圖像進(jìn)行了優(yōu)化。在我們的代碼示例中,我們將使用 QPixmap 在窗口上顯示圖像。

pixmap.py

#!/usr/bin/python""" ZetCode PyQt5 tutorialIn this example, we display an image on the window.Author: Jan Bodnar Website: zetcode.com """from PyQt5.QtWidgets import (QWidget, QHBoxLayout,QLabel, QApplication) from PyQt5.QtGui import QPixmap import sysclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):hbox = QHBoxLayout(self)pixmap = QPixmap('sid.jpg')lbl = QLabel(self)lbl.setPixmap(pixmap)hbox.addWidget(lbl)self.setLayout(hbox)self.move(300, 200)self.setWindowTitle('Sid')self.show()def main():app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())if __name__ == '__main__':main()

在我們的示例中,我們在窗口上顯示圖像。

pixmap = QPixmap('sid.jpg')

我們創(chuàng)建一個(gè) QPixmap 對(duì)象。它以文件名作為參數(shù)。

lbl = QLabel(self) lbl.setPixmap(pixmap)

我們將像素圖放入 QLabel 小部件中。

3 PyQt5 QLineEdit

QLineEdit 是一個(gè)允許輸入和編輯單行純文本的小部件。小部件具有撤消和重做、剪切和粘貼以及拖放功能。

line_edit.py

#!/usr/bin/python""" ZetCode PyQt5 tutorialThis example shows text which is entered in a QLineEdit in a QLabel widget.Author: Jan Bodnar Website: zetcode.com """import sys from PyQt5.QtWidgets import (QWidget, QLabel,QLineEdit, QApplication)class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.lbl = QLabel(self)qle = QLineEdit(self)qle.move(60, 100)self.lbl.move(60, 40)qle.textChanged[str].connect(self.onChanged)self.setGeometry(300, 300, 350, 250)self.setWindowTitle('QLineEdit')self.show()def onChanged(self, text):self.lbl.setText(text)self.lbl.adjustSize()def main():app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())if __name__ == '__main__':main()

此示例顯示了一個(gè)行編輯小部件和一個(gè)標(biāo)簽。我們在行編輯中鍵入的文本會(huì)立即顯示在標(biāo)簽小部件中。

qle = QLineEdit(self)

已創(chuàng)建 QLineEdit 小部件。

qle.textChanged[str].connect(self.onChanged)

如果行編輯小部件中的文本發(fā)生更改,我們將調(diào)用 onChanged 方法。

def onChanged(self, text):self.lbl.setText(text)self.lbl.adjustSize()

在 onChanged 方法中,我們將輸入的文本設(shè)置為標(biāo)簽小部件。我們調(diào)用 adjustSize 方法將標(biāo)簽的大小調(diào)整為文本的長度。

正在上傳…重新上傳取消

Figure: QLineEdit

4 PyQt5 QSplitter

QSplitter 允許用戶通過拖動(dòng)子控件之間的邊界來控制子控件的大小。在我們的示例中,我們展示了三個(gè)使用兩個(gè)拆分器組織的 QFrame 小部件。

splitter.py

#!/usr/bin/python""" ZetCode PyQt5 tutorialThis example shows how to use QSplitter widget.Author: Jan Bodnar Website: zetcode.com """import sysfrom PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QFrame,QSplitter, QApplication)class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):hbox = QHBoxLayout(self)topleft = QFrame(self)topleft.setFrameShape(QFrame.StyledPanel)topright = QFrame(self)topright.setFrameShape(QFrame.StyledPanel)bottom = QFrame(self)bottom.setFrameShape(QFrame.StyledPanel)splitter1 = QSplitter(Qt.Horizontal)splitter1.addWidget(topleft)splitter1.addWidget(topright)splitter2 = QSplitter(Qt.Vertical)splitter2.addWidget(splitter1)splitter2.addWidget(bottom)hbox.addWidget(splitter2)self.setLayout(hbox)self.setGeometry(300, 300, 450, 400)self.setWindowTitle('QSplitter')self.show()def main():app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())if __name__ == '__main__':main()

在我們的示例中,我們有三個(gè)框架小部件和兩個(gè)拆分器。請注意,在某些主題下,拆分器可能不太明顯。

topleft = QFrame(self) topleft.setFrameShape(QFrame.StyledPanel)

我們使用樣式框架來查看 QFrame 小部件之間的邊界。

splitter1 = QSplitter(Qt.Horizontal) splitter1.addWidget(topleft) splitter1.addWidget(topright)

我們創(chuàng)建一個(gè) QSplitter 小部件并向其中添加兩個(gè)幀。

splitter2 = QSplitter(Qt.Vertical) splitter2.addWidget(splitter1)

我們還可以將拆分器添加到另一個(gè)拆分器小部件

圖: QSplitter widget

5 PyQt5 QComboBox

QComboBox 是一個(gè)允許用戶從選項(xiàng)列表中進(jìn)行選擇的小部件。

combobox.py

#!/usr/bin/python""" ZetCode PyQt5 tutorialThis example shows how to use a QComboBox widget.Author: Jan Bodnar Website: zetcode.com """import sysfrom PyQt5.QtWidgets import (QWidget, QLabel,QComboBox, QApplication)class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.lbl = QLabel('Ubuntu', self)combo = QComboBox(self)combo.addItem('Ubuntu')combo.addItem('Mandriva')combo.addItem('Fedora')combo.addItem('Arch')combo.addItem('Gentoo')combo.move(50, 50)self.lbl.move(50, 150)combo.activated[str].connect(self.onActivated)self.setGeometry(300, 300, 450, 400)self.setWindowTitle('QComboBox')self.show()def onActivated(self, text):self.lbl.setText(text)self.lbl.adjustSize()def main():app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())if __name__ == '__main__':main()

該示例顯示了一個(gè) QComboBox 和一個(gè) QLabel。組合框有五個(gè)選項(xiàng)的列表。這些是 Linux 發(fā)行版的名稱。標(biāo)簽小部件顯示組合框中的選定選項(xiàng)。

combo = QComboBox(self) combo.addItem('Ubuntu') combo.addItem('Mandriva') combo.addItem('Fedora') combo.addItem('Arch') combo.addItem('Gentoo')

We create a?QComboBox?widget with five options.

combo.activated[str].connect(self.onActivated)

Upon an item selection, we call the?onActivated?method.

def onActivated(self, text):self.lbl.setText(text)self.lbl.adjustSize()

在方法內(nèi)部,我們將所選項(xiàng)目的文本設(shè)置為標(biāo)簽小部件。我們調(diào)整標(biāo)簽的大小。

圖: QComboBox

總結(jié)

以上是生活随笔為你收集整理的pyqt5教程10:Widgets2组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。