qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget
生活随笔
收集整理的這篇文章主要介紹了
qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
QTabWidget簡介
在GUI應用軟件中,多頁面的切換的使用范圍十分廣泛,在操作過程中,用戶使用鼠標點擊不同的標題欄就可以方便展示不同頁面的內容,眾多界面共用一塊顯示區域,在有限的就顯示區域中可以很方便地位用戶顯示更多的信息。
Qt為多頁面切換的實現提供了一個專門的控件QTabWidget, 它可以實現在同一區域中自由切換不同頁面的內容,該控件是一個容器類控件,并提供友好的頁面切換方式。
QTabWidget常用方法有:
- addTab(): 添加一個標簽;
- insertTab(): 在指定位置插入一個標簽;
- removeTab(): 刪除指定索引的標簽;
- setTabText(): 設置指定索引標簽的文本信息;
- tabText(): 獲得指定索引標簽的文本信息;
- setTabIcon(): 設置指定索引標簽的圖標;
- tabIcon(): 獲得指定索引標簽的圖標;
- currentWidget(): 獲得當前活動標簽的部件;
- widget(): 獲得指定標簽索引的部件;
- indexOf(): 獲得指定部件的標簽索引;
- count(): 總標簽數;
- setTabPosition(): 設置標簽的顯示位置,值為(北:QTabWidget.North, 南:QTabWidget.South, 西:QTabWidget.West, 東:QTabWidget.East);
- setTabShape(): 設置標簽的形狀, 值為:(四邊形:QTabWidget.Rounded, 三角形:QTabWidget.Triangular)。
QTabWidget常用信號:
- currentChanged: 當前標簽頁發生改變后,發射該信號;
- tabCloseRequested: 標簽頁關閉請求時,發射該信號;
- tabBarClicked: 單擊了標簽條,發射該信號;
- tabBarDoubleClicked: 雙擊了標簽條,發射該信號。
QTabWidget類繼承關系:
測試QTabWidget
創建文件qtabwidget,假設我們設計一個win10系統文件右鍵菜單屬性對話框,其主要內容就是由選項卡控件實現, 在這里實現其選項卡框架, 完整代碼如下:
import?sysfrom?PyQt5?import?QtCore,?QtGui,?QtWidgetsfrom?PyQt5.QtCore?import?Qtfrom?PyQt5.QtGui?import?QFontfrom?PyQt5.QtWidgets?import?(QApplication,?QMainWindow,?QWidget,??????????????????????????????QTabWidget,?QMenuBar,?QMenu,?QAction,?????????????????????????????QActionGroup,?QVBoxLayout,?QLabel)?class?DemoTabWidget(QMainWindow):????def?__init__(self,?parent=None):????????super(DemoTabWidget,?self).__init__(parent)????????????????????#?設置窗口標題????????self.setWindowTitle('實戰PyQt5:?QTabWidget?Demo!')??????????????#?設置窗口大小????????self.resize(480,?360)??????????????self.initUi()????????????def?initUi(self):????????????????self.initMenu()????????????????self.tw?=?QTabWidget(self)????????self.tw.addTab(self.createWidget(0),?'常規')????????self.tw.addTab(self.createWidget(1),?'快捷方式')????????self.tw.addTab(self.createWidget(2),?'兼容性')????????self.tw.addTab(self.createWidget(3),?'安全')????????self.tw.addTab(self.createWidget(4),?'詳細信息')????????self.tw.addTab(self.createWidget(5),?'以前的版本')????????????????self.setCentralWidget(self.tw)????????????????def?initMenu(self):????????menuBar?=?self.menuBar()????????#添加一個菜單項,在菜單項下課添加子菜單項????????fileMenu?=?menuBar.addMenu('文件')????????aExit?=?QAction('Exit',?self)????????aExit.triggered.connect(self.close)????????fileMenu.addAction(aExit)????????????????#標簽條位置控制????????posMenu?=?menuBar.addMenu('標簽條位置')????????????????aNorth?=?QAction('上方',?self)????????aNorth.setCheckable(True)????????aNorth.setChecked(True)????????aNorth.triggered.connect(lambda:self.changeTabPos(0))????????aSouth?=?QAction('下方',?self)????????aSouth.setCheckable(True)????????aSouth.triggered.connect(lambda:self.changeTabPos(1))????????aWest?=?QAction('左邊',?self)????????aWest.setCheckable(True)????????aWest.triggered.connect(lambda:self.changeTabPos(2))????????aEast?=?QAction('右邊',?self)????????aEast.setCheckable(True)????????aEast.triggered.connect(lambda:self.changeTabPos(3))????????????posGroup?=?QActionGroup(self)????????posGroup.addAction(aNorth)????????posGroup.addAction(aSouth)????????posGroup.addAction(aWest)????????posGroup.addAction(aEast)????????????????posMenu.addAction(aNorth)????????posMenu.addAction(aSouth)????????posMenu.addAction(aWest)????????posMenu.addAction(aEast)????????????????#標簽條形狀????????shapeMenu?=?menuBar.addMenu('標簽條形狀')????????aRounded?=?QAction('圓角矩形',?self)????????aRounded.setCheckable(True)????????aRounded.setChecked(True)????????aRounded.triggered.connect(lambda:self.changeTabShape(0))????????aTriangular?=?QAction('三角形',?self)????????aTriangular.setCheckable(True)????????aTriangular.triggered.connect(lambda:self.changeTabShape(1))????????????????shapeGroup?=?QActionGroup(self)????????shapeGroup.addAction(aRounded)????????shapeGroup.addAction(aTriangular)????????????????shapeMenu.addAction(aRounded)????????shapeMenu.addAction(aTriangular)????????????def?changeTabPos(self,?index):????????switcher?=?{????????????0:?QTabWidget.North,????????????1:?QTabWidget.South,????????????2:?QTabWidget.West,????????????3:?QTabWidget.East????????}????????self.tw.setTabPosition(switcher.get(index))????????????def?changeTabShape(self,?index):????????if?index?==?0:????????????self.tw.setTabShape(QTabWidget.Rounded)????????else:????????????self.tw.setTabShape(QTabWidget.Triangular)????????????????def?createWidget(self,?index):????????wid?=?QWidget()????????layout?=?QVBoxLayout(wid)????????label?=?QLabel(wid)????????label.setAlignment(Qt.AlignCenter)????????label.setFont(QFont(self.font().family(),?36))????????label.setText("選項卡?{}".format(index?+?1))????????????????layout.addWidget(label)????????wid.setLayout(layout)????????return?wid????if?__name__?==?'__main__':????app?=?QApplication(sys.argv)????window?=?DemoTabWidget()????window.show()????sys.exit(app.exec())運行結果如下圖:
測試QTabWidget
本文知識點
- 使用QTabWidget添加多個選項卡;
- 改變選項卡標簽的顯示位置;
- 改變選項卡標簽的形狀;
- 使用QActionGroup實現一組菜單項的單選功能;
- 改變QLabel字體的尺寸。
喜歡本文內容就收藏,點贊,評論,關注和轉發。
總結
以上是生活随笔為你收集整理的qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rdd数据存内存 数据量_「大数据」(七
- 下一篇: dijkstra算法c++_Matlab