婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PyQT5 QTDesigner窗口及組成的實現

PyQT5 QTDesigner窗口及組成的實現

熱門標簽:400電話申請服務商選什么 千陽自動外呼系統 原裝電話機器人 平頂山外呼系統免費 西藏智能外呼系統五星服務 江蘇客服外呼系統廠家 清遠360地圖標注方法 工廠智能電話機器人 在哪里辦理400電話號碼

一、主窗口成員

主窗口中的菜單欄、工具欄和狀態欄

1.菜單欄

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

2.工具欄(動作)

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

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

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

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

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

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

二、窗口類型

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

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

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

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

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

三、關閉窗口的兩種方式

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

第二種方式是發送信號調用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槽函數
  def close(self):
    print("這里我們重寫一下主窗口的close方法")
    super(MyWindow, self).close()

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


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

  # 主循環
  sys.exit(app.exec_())

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

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

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

# -*- 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"))

四、窗口坐標

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

# 使用一個按鈕觸發該槽函數,用于獲取當前窗口的位置和尺寸
def getSizeOfMainWin(self):
  # 窗口左上角所在坐標
  print(self.x()) # 100
  print(self.y()) # 100
  # 整個窗口的寬和高
  print(self.width()) # 1264
  print(self.height()) # 886
  # 可用區域左上角所在坐標
  print(self.geometry().x()) # 101,說明可用區域左邊有一個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系統下才生效(在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__':
  # 創建一個App實例
  app = QApplication(sys.argv)
  app.setWindowIcon(QIcon("icon.ico"))
  
  # 創建一個主窗口
  mainWin = MyWindow()
  # 使用我們生成的UI窗口實例
  ui = Ui_MainWindow()
  # 將主窗口傳遞進去,讓Ui_MainWindow幫我們向主窗口上放置組件
  ui.setupUi(mainWin)
  # 顯示
  mainWin.show()
  # 主循環
  sys.exit(app.exec_())

這種方式對于Windows系統和MAC系統都生效。

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

您可能感興趣的文章:
  • PyCharm+PyQt5+QtDesigner配置詳解
  • PYQT5 vscode聯合操作qtdesigner的方法
  • pyqt5、qtdesigner安裝和環境設置教程
  • pyqt5利用pyqtDesigner實現登錄界面

標簽:隨州 西安 股票 日照 錦州 白城 安慶 天水

巨人網絡通訊聲明:本文標題《PyQT5 QTDesigner窗口及組成的實現》,本文關鍵詞  PyQT5,QTDesigner,窗口,及,組成,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyQT5 QTDesigner窗口及組成的實現》相關的同類信息!
  • 本頁收集關于PyQT5 QTDesigner窗口及組成的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区精品视频| av在线不卡观看免费观看| 欧美日韩国产综合草草| 国产成人在线视频网址| 午夜av区久久| 亚洲图片欧美激情| 久久精品欧美一区二区三区不卡 | 91最新地址在线播放| 麻豆精品视频在线观看免费| 国产精品久久久久婷婷二区次| 这里只有精品免费| 欧美酷刑日本凌虐凌虐| 日本高清不卡一区| 成人国产精品免费网站| 蜜桃av一区二区在线观看| 亚洲午夜激情网站| 一区二区三区欧美日| 日韩欧美在线网站| 在线播放日韩导航| 欧美嫩在线观看| 91精品综合久久久久久| 精品视频一区三区九区| 欧美日韩三级一区二区| 欧美日韩精品一区二区三区 | 日韩1区2区3区| 亚洲成av人片在www色猫咪| 亚洲国产日韩一级| 日韩精品一卡二卡三卡四卡无卡| 丝袜脚交一区二区| 久久99国产精品成人| 国产高清成人在线| 国产成人精品一区二区三区网站观看| 国产成a人亚洲精品| 91亚洲国产成人精品一区二区三| 色琪琪一区二区三区亚洲区| 91黄视频在线观看| 欧美日韩免费一区二区三区| 91麻豆精品国产自产在线观看一区| 5月丁香婷婷综合| 日韩色在线观看| 久久精品人人爽人人爽| 一区二区欧美视频| 男人的j进女人的j一区| 成人app软件下载大全免费| 色婷婷av一区二区三区软件| 欧美中文字幕一区二区三区亚洲| 欧美性极品少妇| 日韩欧美亚洲国产另类| 中文字幕乱码亚洲精品一区| 中文字幕综合网| 午夜国产不卡在线观看视频| 国产一区视频导航| 欧美三级电影在线看| 亚洲精品一区二区三区四区高清| 国产三级精品三级| 亚洲丝袜精品丝袜在线| 久久99久久99精品免视看婷婷| 91偷拍与自偷拍精品| 欧美mv和日韩mv的网站| 亚洲一区二区在线观看视频| 国产一区不卡在线| 欧美理论电影在线| 国产精品国产a级| 欧美aaaaaa午夜精品| 色综合久久久久网| 亚洲国产精品国自产拍av| 欧美a一区二区| 91国模大尺度私拍在线视频| 久久影院午夜片一区| 亚洲国产精品一区二区久久恐怖片 | 日韩一区二区三免费高清| 中日韩免费视频中文字幕| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久69国产一区二区蜜臀| 91色porny在线视频| 久久久久久久久97黄色工厂| 日韩中文字幕一区二区三区| 色综合久久久久久久| 国产人久久人人人人爽| 日本亚洲欧美天堂免费| 欧美午夜精品久久久久久超碰 | 欧美日本一区二区| 国产在线观看一区二区| 欧洲国产伦久久久久久久| 亚洲国产精品传媒在线观看| 久久69国产一区二区蜜臀| 欧美精品xxxxbbbb| 国产精品久久久久久户外露出| 蜜臀av性久久久久蜜臀aⅴ| 欧美中文字幕久久| 亚洲色图在线播放| yourporn久久国产精品| 久久精品夜夜夜夜久久| 激情五月婷婷综合| 日韩欧美国产综合| 亚洲一二三四在线| 欧美在线观看你懂的| 亚洲激情男女视频| 欧美丝袜丝交足nylons图片| 欧美图区在线视频| 在线亚洲高清视频| 自拍偷自拍亚洲精品播放| 国产盗摄一区二区| 久久久影视传媒| 国产精品一级片在线观看| 欧美成人一区二区| 国产最新精品精品你懂的| 日韩免费看的电影| 激情欧美日韩一区二区| 2023国产精品视频| 成+人+亚洲+综合天堂| 国产欧美日韩中文久久| 成人精品视频一区| 亚洲码国产岛国毛片在线| 成人爱爱电影网址| 欧美日韩国产高清一区二区三区| 亚洲一区在线观看免费| 欧美日韩一区小说| 久久精品久久综合| 成人免费视频在线观看| 欧美亚一区二区| 久久精品国产久精国产爱| 久久免费电影网| 成人中文字幕合集| 亚洲天堂网中文字| 欧美自拍偷拍午夜视频| 激情综合亚洲精品| 中文一区在线播放 | 欧美一级精品在线| 激情图片小说一区| 《视频一区视频二区| 精品视频在线视频| 国产精品69久久久久水密桃| 亚洲乱码精品一二三四区日韩在线| 7777精品伊人久久久大香线蕉超级流畅 | 91亚洲大成网污www| 亚洲超碰精品一区二区| 欧美顶级少妇做爰| 国产高清不卡一区二区| 亚洲精品国产a久久久久久 | 亚洲美女免费视频| 精品国产成人系列| 91丨porny丨最新| 美女在线视频一区| 中文字幕在线一区免费| 欧美三级视频在线观看| 蜜乳av一区二区| 亚洲丝袜美腿综合| 精品盗摄一区二区三区| 99久久精品免费观看| 国内成+人亚洲+欧美+综合在线| 亚洲精品成人a在线观看| 欧美日韩一区二区三区在线看| 精品无人区卡一卡二卡三乱码免费卡| 亚洲天堂av一区| 精品国产百合女同互慰| 欧美自拍偷拍一区| 成人av网址在线| 日韩一区精品视频| 亚洲成人777| 国产精品大尺度| 国产喂奶挤奶一区二区三区| 欧美电影免费观看高清完整版在线 | 无码av免费一区二区三区试看| 国产亚洲午夜高清国产拍精品 | 丁香另类激情小说| 老司机免费视频一区二区三区| 亚洲网友自拍偷拍| 一区二区三区在线观看国产| 国产精品女同一区二区三区| 久久先锋影音av鲁色资源| 欧美tickling挠脚心丨vk| 日韩欧美一区二区视频| 欧美一区二区在线看| 欧美偷拍一区二区| 欧美日韩久久久| 91精品国产免费久久综合| 欧美日韩国产精选| 欧美一二三四在线| 精品卡一卡二卡三卡四在线| 日韩欧美电影一二三| 日韩一区二区三区在线| 国产美女久久久久| 亚洲国产电影在线观看| 99久久婷婷国产综合精品电影| 欧美日本一区二区三区四区| 欧美一二三区在线| 亚洲卡通动漫在线| 日本女优在线视频一区二区| 亚洲一区二区三区在线| 麻豆视频一区二区| 欧美在线观看一区| 亚洲三级免费电影| 国产福利一区二区三区在线视频| 国产午夜精品久久久久久久 | 91传媒视频在线播放| 93久久精品日日躁夜夜躁欧美| 91丨九色丨蝌蚪丨老版| 欧美人xxxx| 欧美一区二区三区在线|