1. 程式人生 > >PyQt5基本控制元件詳解之QDialog(十二)

PyQt5基本控制元件詳解之QDialog(十二)

QDialog

前言

為了更好的實現人機互動,比如window和linux等系統均會提供一系列的標準對話方塊來完成特定場景下的功能,比如選擇字號大小。字型顏色等,在PyQt5中定義了一系列的標準對話方塊類,讓使用者能夠方便快捷地通過各個類完成字號大小,字型顏色以及檔案的選擇等

QDialog類的子類主要有QMessageBox,QFileDialog,QColorDialog,QFontDialog,QInputDialog等,這些內容隨後就會介紹到

QDialog類中的常用方法

方法 描述
setWindowTitle() 設定對話方塊標題
setWindowModality() 設定視窗模態,取值如下
Qt.NonModal:非模態,可以和程式的其他視窗進行互動
Qt.WindowModal:視窗模態,程式在未處理玩當前對話方塊時,將阻止和對話方塊的父視窗進行互動
Qt.ApplicationModal:應用程式模態,阻止和任何其他視窗進行互動

例項:QDialog的使用

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class
DialogDemo(QMainWindow):
def __init__(self,parent=None): super(DialogDemo, self).__init__(parent) #設定主介面的標題及初始大小 self.setWindowTitle('Dialog例子') self.resize(350,300) #建立按鈕,注意()內的self必不可少,用於載入自身的一些屬性設定 self.btn=QPushButton(self) #設定按鈕的屬性:文字,移動位置,連結槽函式
self.btn.setText('彈出對話方塊') self.btn.move(50,50) self.btn.clicked.connect(self.showdialog) def showdialog(self): #建立QDialog物件 dialog=QDialog() #建立按鈕到新建立的dialog物件中 btn=QPushButton('ok',dialog) #移動按鈕,設定dialog的標題 btn.move(50,50) dialog.setWindowTitle("Dialog") #設定視窗的屬性為ApplicationModal模態,使用者只有關閉彈窗後,才能關閉主介面 dialog.setWindowModality(Qt.ApplicationModal) dialog.exec_() if __name__ == '__main__': app=QApplication(sys.argv) demo=DialogDemo() demo.show() sys.exit(app.exec_())

執行程式,顯示效果如下
- 這裡寫圖片描述
程式碼分析:

在這個例子中,Dialog視窗的WindowModality屬性決定是否為模態或非模態,當用戶按下ESC鍵時,對話方塊視窗將會預設呼叫QDialog.reject()方法,然後關閉對話方塊視窗
單擊QWidget視窗中的PushButton按鈕時,將生成一個對話方塊視窗,在對話方塊視窗的標題欄上沒有最小化和最大化控制元件,以下程式碼將給按鈕的clicked訊號新增槽函式showdialog()

self.btn.clicked.connect(self.showdialog)

由於Dialog視窗的WindowModality屬性設定為Qt.ApplicationModal模態,使用者只有關閉所彈出的對話方塊視窗後,才能關閉主視窗,以下程式碼用於設定對話方塊模態

dialog.setWindowModality(Qt.ApplicationModal)

相關推薦

PyQt5基本控制元件QDialog

QDialog 前言 為了更好的實現人機互動,比如window和linux等系統均會提供一系列的標準對話方塊來完成特定場景下的功能,比如選擇字號大小。字型顏色等,在PyQt5中定義了一系列的標準對話方塊類,讓使用者能夠方便快捷地通過各個類完成字號大

PyQt5基本控制元件QLineEdit

QLineEdit QLineEdit類中常用的方法如下表 方法 描述 setAlignment() 按固定值方式對齊文字 Qt.AlignLeft:水平方向靠左對齊 Qt.AlignRight:水平方

PyQt5基本控制元件QPixmap(九)

QPixmap 前言 QPixmap類用於繪圖裝置的影象顯示,它可以作為一個QPainterDevice物件,也可以載入到一個控制元件中,通常是標籤或者按鈕,用於在標籤或按鈕上顯示影象

PyQt5基本控制元件QCheckBox(八)

QCheckBox QCheckBox類中常用方法如表 方法 描述 setChecked() 設定複選框的狀態,設定為True表示選中,False表示取消選中的複選框 setText() 設定複選框的顯示文字

Android入門——基本控制元件

Android應用開發的一項重要內容就是介面開發。對於使用者來說,不管APP包含的邏輯多麼複雜,功能多麼強大,如果沒有提供友好的圖形互動介面,將很難吸引終端使用者。作為一個程式設計師如何才能開發出友好的圖形介面呢。實際上Android提供了非常豐富UI(User Interface)控制元

PyQt5高階介面控制元件QThread

QThread 前言 QThread是Qt的執行緒類中最核心的底層類。由於PyQt的的跨平臺特性,QThread要隱藏所有與平臺相關的程式碼 要使用的QThread開始一個執行緒,可以建立它的一個子類,然後覆蓋其它QThread.run()函式

linux命令df6/19

AS true 設置 符號鏈接 disk var aci 實例 logs df命令作用是列出文件系統的整體磁盤空間使用情況。可以用來查看磁盤已被使用多少空間和還剩余多少空間。 df命令顯示系統中包含每個文件名參數的磁盤使用情況,如果沒有文件名參數,則顯示所有當前已掛載文件系

Spark學習SparkCore的調優資源調優JVM的基本架構

程序員 存儲 src ron 指示器 引用 double strong 功能 一、JVM的結構圖 1.1 Java內存結構 JVM內存結構主要有三大塊:堆內存、方法區和棧。 堆內存是JVM中最大的一塊由年輕代和老年代組成,而年輕代內存又被分成三部分,Eden空間、

python學習

pack 分享 psi python 模塊 shp 詳解 階段 new from 這節主要介紹一下import!很實用的調用模塊的功能。 導入模塊 是導入真實的代碼 而導入包 是導入包下面的 __init__() 文件 這兩個是不一樣的 先說模塊定義 模塊 它就是一個

Spark學習SparkCore的調優資源調優

限制 無法 數據 block 可能 executors 頻繁 通過 操作 摘抄自:https://tech.meituan.com/spark-tuning-basic.html 一、概述 在開發完Spark作業之後,就該為作業配置合適的資源了。Spark的資源參數,基

JAVA基礎學習鏈表

args 是否為空 鏈表 == lin 一個 ava int 數據類型 定義鏈表的基本結構: class Link {//外部類 //內部類,只為鏈表類服務 private class Node {//定義節點類 private

Vue 爬坑—— vue-cli 3.x 搭建項目

cas sas 環境變量 npm pack 全局 開發模式 文件 預編譯 Vue Cli 3 官方文檔:https://cli.vuejs.org/zh/guide/ 一、安裝 @vue/cli 更新到 3.x 之後,vue-cli 的包名從 vue-cli 改

Android破解學習—— GP錄影漢化過程及添加布局

## 前言 最近閒著發慌,想起了很久之前就想漢化的一款錄影APP,APP大小不到1MB,但是好用,本期就給大家帶來漢化的基本步驟以及如何在APP中新增我們漢化的資訊 ## 漢化思路 1. **查詢關鍵字** 關鍵字挺好找的,由於APP本身就是英文,我們找到某個英文單詞進行搜尋即可 2. **找到string.

Python學習

Python基礎知識(11):高階特性 一、分片(切片)   通過索引來獲取一定範圍內的元素 #字串 s="Alice" s[0:4:2] 結果: 'Ai' #列表 l=[1,2,3,4,5,6] l[0:2] 結果: [1, 2] #元組 t=(1,2,3,"a","b","c"

JDBC學習使用Spring中的JdbcTemple實現資料查詢

                其實在Spring這個框架中,提供了一些對JDBC訪問資料庫的封裝,其中JdbcTemplate就是一個很好用的類,下面來演示一下這個類的一些用法。首先需要匯入commons-logging.jar,和spring.jar這兩個包。然後使用他的功能就可以了,可以說,Spring

決戰Python

前言 從這一章開始我們就要開始學習進階的函式知識。 函式中比較重要的就是裝飾器、迭代器、生成器這三樣,我將分開3篇介紹。 知識回顧 裝飾器 在講裝飾器之前,我們先講一點補充知識。 名稱空間 名稱到物件的對映。名稱空間是一個字典的實現,鍵為變數名,值是變數對應的值。 各

全棧JavaScript瞭解 Selector API

2008 年之前,瀏覽器中幾乎所有的DOM擴充套件都是專有的。此後,W3C 著手將一些已經成為事實標準的專有擴充套件標準化並寫入規範當中。 Selector API  level 1  的核心是兩個方法: querySelector(), querySelectorAll(

hadoop生態系統學習cloudera manager的簡單使用

最近,忙著辭職和考駕照的事,都沒時間寫部落格了,差點把大資料相關的一些技術都給忘了。不過還好做好歸納整理,能夠快速的恢復起來。其實,筆者發現,學習大資料還是有點小竅門的。首先,最好能有個人指引,有什麼問題都可以問他,因為我僅僅只看視訊、資料等,很難挖掘裡面有價值

linux系統分析工具slabtop

slabtop 簡介: slabtop - display kernel slab cache information in real time(實時的顯示核心slab快取資訊,透過/proc/slabinfo) 核心的模組在分配資源的時候,為了提高效率和資源的利用率,都

Python 爬蟲從入門到進階

之前的文章我們介紹了 re 模組和 lxml 模組來做爬蟲,本章我們再來看一個 bs4 模組來做爬蟲。 和 lxml 一樣,Beautiful Soup 也是一個HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 資料。 lxml 只會區域性遍歷,而Beautiful Soup