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

PyQT5 QTDesigner窗口及組成的實現(xiàn)

 更新時間:2021年04月07日 09:56:11   作者:風間悠香  
這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、主窗口成員

主窗口中的菜單欄、工具欄和狀態(tài)欄

1.菜單欄

我們可以直接在QTDesigner中輸入菜單選項即可。這些菜單選項本質上都是動作,關于動作,在下面章節(jié)進行描述。

2.工具欄(動作)

要在工具欄中添加按鈕,我們首先要在QTDesigner的菜單欄中選擇視圖-->動作編輯器,打開動作編輯器:

因為,能夠用于工具欄的控件并不是普通的pushButton按鈕,而是叫做Action的動作。

此時,我們就可以將需要的動作(Action)拖拽到工具欄中:

當然,我們可以自定義一些Action,并添加到工具欄中。

我們可以在鼠標右鍵中選擇新建工具欄,從而創(chuàng)建多個工具欄(每個工具欄之間有4個豎點隔開):

注意:動作編輯器中的所有動作都是菜單欄和工具欄共用的。本質上說,工具欄就是菜單欄中功能的快捷按鈕,方便用戶使用。

二、窗口類型

我們在QTDesigner中新建窗口的時候,可以看到有以下幾種窗口:

窗口大致分為三種,Main Window、Widget和Dialog。

Main Window:主窗口,其中包含菜單欄、工具欄、狀態(tài)欄,是我們經(jīng)常使用的窗口類型,一般用于程序的主窗口。

Dialog:對話窗口的基類,沒有菜單欄、工具欄、狀態(tài)欄,但可能有默認的一些操作按鈕,例如確定、關閉等。

Widget:當我們不確定窗口用途的時候,可以使用Widget窗口。

三、關閉窗口的兩種方式

第一種方式是發(fā)送信號調用主窗口的Close方法。

第二種方式是發(fā)送信號調用QApplication的quit方法(即退出整個程序)。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget

from ui3 import Ui_MainWindow


class MyWindow(QMainWindow):
  def __init__(self):
    super(MyWindow, self).__init__()

  # 重寫close槽函數(shù)
  def close(self):
    print("這里我們重寫一下主窗口的close方法")
    super(MyWindow, self).close()

  # 調用App.quit()來退出程序
  def quitApp(self):
    app = QApplication.instance()
    print("退出整個程序")
    app.quit()


if __name__ == '__main__':
  # 創(chuàng)建一個App實例
  app = QApplication(sys.argv)
  # 創(chuàng)建一個主窗口
  mainWin = MyWindow()
  # 使用我們生成的UI窗口實例
  ui = Ui_MainWindow()
  # 將主窗口傳遞進去,讓Ui_MainWindow幫我們向主窗口上放置組件
  ui.setupUi(mainWin)
  # 顯示
  mainWin.show()

  # 主循環(huán)
  sys.exit(app.exec_())

其中close槽函數(shù),對應主窗口原本的close方法(只是重寫一下打印了一句話)。

quitApp是另一個槽函數(shù),由另一個按鈕觸發(fā),同樣可以達到關閉窗口的效果(退出整個程序)。

下面附上自動生成的ui3.py的代碼(就兩個按鈕,關聯(lián)了兩個槽函數(shù)):

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ui3.ui'
#
# Created by: PyQt5 UI code generator 5.14.2
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(1264, 886)
    sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
    sizePolicy.setHorizontalStretch(1)
    sizePolicy.setVerticalStretch(0)
    sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
    MainWindow.setSizePolicy(sizePolicy)
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.pushButton = QtWidgets.QPushButton(self.centralwidget)
    self.pushButton.setGeometry(QtCore.QRect(120, 130, 75, 23))
    self.pushButton.setObjectName("pushButton")
    self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
    self.pushButton_2.setGeometry(QtCore.QRect(280, 140, 75, 23))
    self.pushButton_2.setObjectName("pushButton_2")
    MainWindow.setCentralWidget(self.centralwidget)
    self.menubar = QtWidgets.QMenuBar(MainWindow)
    self.menubar.setGeometry(QtCore.QRect(0, 0, 1264, 23))
    self.menubar.setObjectName("menubar")
    MainWindow.setMenuBar(self.menubar)
    self.statusbar = QtWidgets.QStatusBar(MainWindow)
    self.statusbar.setObjectName("statusbar")
    MainWindow.setStatusBar(self.statusbar)

    self.retranslateUi(MainWindow)
    self.pushButton.clicked.connect(MainWindow.close)
    self.pushButton_2.clicked.connect(MainWindow.quitApp)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)

  def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.pushButton.setText(_translate("MainWindow", "PushButton"))
    self.pushButton_2.setText(_translate("MainWindow", "PushButton"))

四、窗口坐標

通過以下方式可以獲取窗口的坐標和尺寸:

# 使用一個按鈕觸發(fā)該槽函數(shù),用于獲取當前窗口的位置和尺寸
def getSizeOfMainWin(self):
  # 窗口左上角所在坐標
  print(self.x()) # 100
  print(self.y()) # 100
  # 整個窗口的寬和高
  print(self.width()) # 1264
  print(self.height()) # 886
  # 可用區(qū)域左上角所在坐標
  print(self.geometry().x()) # 101,說明可用區(qū)域左邊有一個1px的邊框
  print(self.geometry().y()) # 131,說明窗口上面的標題欄為31px(包含1px邊框)
  # 整個窗口的寬和高,與self.width()、self.height()相同
  print(self.geometry().width()) # 1264
  print(self.geometry().height()) # 886

五、窗口和應用程序坐標

有以下兩種方法可以設置窗口和應用程序坐標。

需要引入:from PyQt5.QtGui import QIcon

1.使用窗口對象的setWindowIcon方法

當使用窗口的setWindowIcon方法時,在Windows系統(tǒng)下才生效(在MAC中不能生效):

class MyWindow(QMainWindow):
  def __init__(self):
    super(MyWindow, self).__init__()
    self.initUI()

  def initUI(self):
    self.setWindowIcon(QIcon("icon.ico"))

效果:

2.使用QApplication實例的setWindowIcon方法

if __name__ == '__main__':
  # 創(chuàng)建一個App實例
  app = QApplication(sys.argv)
  app.setWindowIcon(QIcon("icon.ico"))
  
  # 創(chuàng)建一個主窗口
  mainWin = MyWindow()
  # 使用我們生成的UI窗口實例
  ui = Ui_MainWindow()
  # 將主窗口傳遞進去,讓Ui_MainWindow幫我們向主窗口上放置組件
  ui.setupUi(mainWin)
  # 顯示
  mainWin.show()
  # 主循環(huán)
  sys.exit(app.exec_())

這種方式對于Windows系統(tǒng)和MAC系統(tǒng)都生效。

到此這篇關于PyQT5 QTDesigner窗口及組成的實現(xiàn)的文章就介紹到這了,更多相關PyQT5 QTDesigner窗口內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 對dataframe進行列相加,行相加的實例

    對dataframe進行列相加,行相加的實例

    今天小編就為大家分享一篇對dataframe進行列相加,行相加的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python讀寫csv并將csv數(shù)據(jù)寫入數(shù)據(jù)庫

    python讀寫csv并將csv數(shù)據(jù)寫入數(shù)據(jù)庫

    CSV,也即Comma-Separated?Values,是一種用于存儲表格數(shù)據(jù)的純文本文件格式,本文主要介紹了如何使用python讀寫csv并將csv數(shù)據(jù)寫入數(shù)據(jù)庫,感興趣的可以了解下
    2024-11-11
  • 如何用python 實現(xiàn)老板鍵功能

    如何用python 實現(xiàn)老板鍵功能

    這篇文章主要介紹了python 開發(fā)老板鍵功能的方法,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python實現(xiàn)EXCEL表格的排序功能示例

    Python實現(xiàn)EXCEL表格的排序功能示例

    這篇文章主要介紹了Python實現(xiàn)EXCEL表格的排序功能示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • 對python函數(shù)簽名的方法詳解

    對python函數(shù)簽名的方法詳解

    今天小編就為大家分享一篇對python函數(shù)簽名的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python文件目錄操作常用模塊的使用詳解

    Python文件目錄操作常用模塊的使用詳解

    Python中用于文件目錄操作的常用模塊有os, shutil,pathlib等。os模塊提供的就是各種 Python 程序與操作系統(tǒng)進行交互的接口。shutil模塊是對os模塊的補充,主要針對文件的拷貝、刪除、移動、壓縮和解壓操作
    2022-07-07
  • Python3 jupyter notebook 服務器搭建過程

    Python3 jupyter notebook 服務器搭建過程

    這篇文章主要介紹了Python3 jupyter notebook 服務器搭建過程,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-11-11
  • Python selenium使用autoIT上傳附件過程詳解

    Python selenium使用autoIT上傳附件過程詳解

    這篇文章主要介紹了Python selenium使用autoIT上傳附件過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Python with標簽使用方法解析

    Python with標簽使用方法解析

    這篇文章主要介紹了Python with標簽使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Python操作Jira庫常用方法解析

    Python操作Jira庫常用方法解析

    這篇文章主要介紹了Python操作Jira庫常用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04

最新評論

礼泉县| 宝应县| 南汇区| 泸定县| 大渡口区| 侯马市| 册亨县| 定南县| 东阿县| 石狮市| 灵武市| 钟山县| 鹰潭市| 合山市| 绵阳市| 阿图什市| 湘潭市| 庐江县| 内黄县| 沅江市| 盈江县| 微山县| 奉贤区| 晋州市| 大同县| 固阳县| 巩留县| 定州市| 开远市| 噶尔县| 绥芬河市| 望谟县| 陈巴尔虎旗| 英吉沙县| 平远县| 琼海市| 灵石县| 高唐县| 即墨市| 右玉县| 临江市|