校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > PyQt 如何創(chuàng)建自定義QWidget

PyQt 如何創(chuàng)建自定義QWidget

熱門標(biāo)簽:n400電話申請(qǐng)多少錢 廈門crm外呼系統(tǒng)如何 女王谷地圖標(biāo)注 百應(yīng)ai電銷機(jī)器人鄭州 ai地圖標(biāo)注 長(zhǎng)春人工智能電銷機(jī)器人官網(wǎng) 地圖標(biāo)注推廣單頁(yè) 西藏快速地圖標(biāo)注地點(diǎn) 如何在地圖標(biāo)注文字

開發(fā)環(huán)境

Win7  PyCharm  Python3.5.1  PyQt5

主要文件:

|-- main.py
|-- res
| `-- fish.jpg
`-- ui
 `-- app_widget.py

main.py

import sys

from PyQt5.QtWidgets import QApplication

from ui.app_widget import AppQWidget

if __name__ == '__main__':
 app = QApplication(sys.argv)
 w = AppQWidget()
 w.show()

 sys.exit(app.exec_())

app_main_window.py

自定義了一個(gè)居中顯示的窗口,關(guān)閉時(shí)彈確認(rèn)框

from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QWidget, QPushButton, QDesktopWidget, QMessageBox


class AppQWidget(QWidget):
 """
 A custom QWidget by Rust Fisher
 """

 def __init__(self):
  super().__init__()
  self.init_ui()

 def init_ui(self):
  # self.setGeometry(300, 300, 400, 200) # 相當(dāng)于move和resize
  self.resize(300, 200)
  self.move_to_center()
  self.setWindowTitle('Demo1')
  self.setWindowIcon(QIcon('res/fish.jpg'))

  btn1 = QPushButton('Quit', self)
  btn1.setToolTip('Click to quit')
  btn1.resize(btn1.sizeHint())
  btn1.move(200, 150)
  btn1.clicked.connect(QCoreApplication.instance().quit) # cannot locate function connect

 def closeEvent(self, event):
  reply = QMessageBox.question(self, 'Message',
          'Are you sure to quit now?',
          QMessageBox.Yes | QMessageBox.No,
          QMessageBox.No)
  if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()

 def move_to_center(self):
  qr = self.frameGeometry()
  cp = QDesktopWidget().availableGeometry().center() # got center info here
  qr.moveCenter(cp)
  self.move(qr.topLeft()) # 應(yīng)用窗口的左上方的點(diǎn)到qr矩形的左上方的點(diǎn),因此居中顯示在我們的屏幕上

Tips

多控件可以存在list中

存在一起,需要對(duì)整體操作時(shí)直接遍歷列表

 # 同組的控件可以存在同一個(gè)list中
 self.cb_list = [
  self.ma.i2cCB,
  self.ma.mipiCB,
  self.ma.eepromCB,
  self.ma.tem_sensorCB,
  self.ma.lensCB,
  self.ma.vcmCB,
  self.ma.mirrorCB,
  self.ma.mirrorCaliCB, ]

 self.test_count_et_list = [
  self.ma.i2cCountEt,
  self.ma.mipiCountEt,
  self.ma.eepromCountEt,
  self.ma.tem_sensorCountEt,
  self.ma.lensCountEt,
  self.ma.vcmCountEt,
  self.ma.mirrorCountEt,
  self.ma.mirrorCaliCountEt,
 ]

# 需要操作某組控件時(shí) 直接遍歷列表
def _click_test_item_cb(self):
 """ Update [choose all checkbox] by all test item state """
 choose_all = True
 for cb in self.cb_list:
  choose_all = choose_all  cb.isChecked()
 self.ma.selecteAllCB.setChecked(choose_all)

QApplication與QWidget

QApplication是一個(gè)單例,在QWidget中可以通過(guò)QApplication.instance()獲取到對(duì)象

實(shí)際上在實(shí)例化QApplication前就使用QtGui.QWidget()是會(huì)報(bào)錯(cuò)的

>>> QtGui.QWidget()
QWidget: Must construct a QApplication before a QPaintDevice

參考 How QApplication() and QWidget() objects are connected in PySide/PyQt?

在我們自定義的QMainWindow中,也可以直接獲取到QApplication的實(shí)例。

class RustMainWindow(QMainWindow):
 """ This is the main class """

 def _trigger_english(self):
  print "Change to English", QApplication.instance()

# Change to English PyQt4.QtGui.QApplication object at 0x02ABE3A0>

注意widget持有外部對(duì)象引用的問(wèn)題

如果在程序啟動(dòng)的地方將引用交給widget,退出時(shí)會(huì)造成應(yīng)用無(wú)法關(guān)閉的問(wèn)題(類似內(nèi)存泄漏)。

if __name__ == '__main__':
 app = QApplication(sys.argv)
 # 這里把a(bǔ)pp交給了MainWindow,MainWindow關(guān)閉時(shí)是無(wú)法正常退出應(yīng)用的
 main_d = RustMainWindow(app) # 不建議這么做
 main_d.show()
 sys.exit(app.exec_())

以上就是PyQt 如何創(chuàng)建自定義QWidget的詳細(xì)內(nèi)容,更多關(guān)于PyQt 創(chuàng)建自定義QWidget的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python GUI庫(kù)圖形界面開發(fā)之PyQt5窗口控件QWidget詳細(xì)使用方法
  • python GUI庫(kù)圖形界面開發(fā)之PyQt5中QMainWindow, QWidget以及QDialog的區(qū)別和選擇
  • Python PyQt5-圖形界面的美化操作
  • python中pyqtgraph知識(shí)點(diǎn)總結(jié)
  • 詳解Python GUI編程之PyQt5入門到實(shí)戰(zhàn)
  • 詳解Python3.8+PyQt5+pyqt5-tools+Pycharm配置詳細(xì)教程
  • Python3.7安裝PyQt5 運(yùn)行配置Pycharm的詳細(xì)教程
  • Python 使用 PyQt5 開發(fā)的關(guān)機(jī)小工具分享
  • Python+PyQt5+MySQL實(shí)現(xiàn)天氣管理系統(tǒng)
  • python3.6.8 + pycharm + PyQt5 環(huán)境搭建的圖文教程

標(biāo)簽:拉薩 黔東 內(nèi)江 廊坊 亳州 渭南 綿陽(yáng) 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PyQt 如何創(chuàng)建自定義QWidget》,本文關(guān)鍵詞  PyQt,如何,創(chuàng)建,自定義,QWidget,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PyQt 如何創(chuàng)建自定義QWidget》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PyQt 如何創(chuàng)建自定義QWidget的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩亚洲欧美综合| 中文av一区特黄| 国产精品网站在线观看| 亚洲国产视频一区| 成人av网站在线观看| 91精品国产91久久久久久一区二区 | 日本一区中文字幕| 91亚洲精品久久久蜜桃网站| 亚洲精品在线三区| 五月激情六月综合| 99riav久久精品riav| 国产欧美日韩麻豆91| 韩国av一区二区三区| 91精品国产91久久久久久最新毛片| 中文字幕永久在线不卡| 国产aⅴ综合色| 久久久精品tv| 韩国欧美国产1区| 欧美mv日韩mv国产网站| 男人的j进女人的j一区| 在线播放中文字幕一区| 亚洲福利一区二区三区| 在线影视一区二区三区| 亚洲人123区| 色婷婷精品大在线视频| 中文字幕一区二区日韩精品绯色| 岛国精品一区二区| 国产精品少妇自拍| 韩国v欧美v日本v亚洲v| 日韩一区二区视频| 日本欧美在线观看| 欧美一级二级三级蜜桃| 青青草国产精品97视觉盛宴| 91精品国产综合久久久久久| 日韩av电影天堂| 日韩美女在线视频| 国产永久精品大片wwwapp| 久久综合丝袜日本网| 国内久久婷婷综合| 国产女主播在线一区二区| 成人视屏免费看| 亚洲一区在线观看视频| 欧美女孩性生活视频| 蜜臀久久99精品久久久久宅男| 51精品国自产在线| 国产酒店精品激情| 亚洲欧洲美洲综合色网| 欧美日韩精品一二三区| 蜜桃一区二区三区四区| 国产午夜精品理论片a级大结局| 国产成人在线视频网址| 一区二区免费在线| 91精品国产综合久久精品图片| 久久狠狠亚洲综合| 中文字幕一区二区三区在线播放| 91猫先生在线| 蜜桃视频在线观看一区二区| 国产亚洲精品久| 欧美性xxxxxx少妇| 激情五月激情综合网| 国产精品乱码人人做人人爱 | 国产综合久久久久久鬼色| 国产精品久久久久影院色老大| 91行情网站电视在线观看高清版| 婷婷综合在线观看| 中文字幕乱码亚洲精品一区| 欧美系列在线观看| 国产成人精品免费视频网站| 亚洲小少妇裸体bbw| 国产午夜亚洲精品午夜鲁丝片| 日本乱人伦一区| 国产高清亚洲一区| 日韩电影网1区2区| 亚洲欧洲性图库| 日韩精品一区二区在线| 在线看日本不卡| 国产精品99久久久久久有的能看| 亚洲综合激情另类小说区| 国产三级精品三级在线专区| 欧美一级午夜免费电影| 成人深夜福利app| 麻豆成人免费电影| 亚洲最色的网站| 国产嫩草影院久久久久| 欧美一区日韩一区| 欧美图区在线视频| 成人sese在线| 国产伦精品一区二区三区免费 | 国产精品超碰97尤物18| 欧美成人一区二区三区在线观看| 色激情天天射综合网| 国产传媒一区在线| 精品一区二区在线看| 天天综合色天天综合色h| 亚洲一区二区三区四区的| 国产精品传媒视频| 国产精品美女久久久久高潮| 久久精品视频网| 26uuu久久天堂性欧美| 欧美二区三区91| 欧美性视频一区二区三区| 99久久精品国产毛片| 成人av网站在线| 高清成人免费视频| 国产成人av电影在线观看| 精品一区二区三区在线播放视频 | 欧美成人a∨高清免费观看| 6080yy午夜一二三区久久| 在线免费观看日本欧美| 欧美这里有精品| 欧美日韩亚洲综合一区二区三区| 91高清在线观看| 在线观看成人小视频| 91福利精品第一导航| 日本高清不卡aⅴ免费网站| 色婷婷精品久久二区二区蜜臂av| 不卡的av在线| 91理论电影在线观看| 91丝袜美腿高跟国产极品老师| 91片黄在线观看| 欧美最猛黑人xxxxx猛交| 欧美三级电影网| 欧美日韩精品一区二区三区蜜桃| 欧美日韩国产a| 日韩女优电影在线观看| 久久久久久99精品| 国产精品国产三级国产a | 久久综合精品国产一区二区三区| 精品国产一区a| 亚洲国产精品二十页| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲精品老司机| 亚洲国产精品久久久男人的天堂| 亚洲一二三区不卡| 六月丁香婷婷久久| 成人一区二区三区在线观看| 色婷婷狠狠综合| 欧美一卡2卡三卡4卡5免费| 久久久不卡网国产精品一区| 亚洲欧美日韩在线| 免费视频一区二区| 国产成人精品1024| 精品视频123区在线观看| 日韩精品一区二区三区视频播放| 国产日韩欧美一区二区三区乱码| 亚洲欧美经典视频| 久久99久久久欧美国产| 成人精品视频一区| 欧美日韩国产经典色站一区二区三区| 欧美成人猛片aaaaaaa| 亚洲精品亚洲人成人网| 精品在线一区二区三区| 在线日韩一区二区| 久久久久国产成人精品亚洲午夜| 中文字幕一区二区日韩精品绯色| 午夜影视日本亚洲欧洲精品| 国产毛片精品国产一区二区三区| 色欧美乱欧美15图片| 精品成人一区二区三区| 亚洲综合一区二区三区| 国产精品一区二区男女羞羞无遮挡| 91亚洲午夜精品久久久久久| 久久免费偷拍视频| 日本少妇一区二区| 色一区在线观看| 久久久久国产成人精品亚洲午夜| 图片区小说区区亚洲影院| 不卡的电影网站| 精品少妇一区二区三区在线视频| 一区二区三区 在线观看视频 | 国产性天天综合网| 麻豆国产一区二区| 欧美在线制服丝袜| 亚洲日本乱码在线观看| 国产成人在线视频网站| 欧美不卡视频一区| 日本成人在线一区| 欧美美女激情18p| 一级女性全黄久久生活片免费| 国产精品77777竹菊影视小说| 欧美精品一卡两卡| 亚洲一区二区视频在线| 95精品视频在线| 国产精品久久久久久久久果冻传媒| 国产真实乱子伦精品视频| 91精品国产aⅴ一区二区| 亚洲成人动漫精品| 欧美视频中文字幕| 亚洲激情图片一区| 日本高清不卡一区| 亚洲一区二区在线视频| 欧美午夜影院一区| 亚洲激情自拍视频| 欧美在线制服丝袜| 一区二区欧美在线观看| 日本乱人伦aⅴ精品| 亚洲一区二区三区视频在线| 91久久精品国产91性色tv| 亚洲精品成人在线| 欧美亚洲综合网|