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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget

發布時間:2024/9/19 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。