国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【QT】——QWidget窗口類

這篇具有很好參考價值的文章主要介紹了【QT】——QWidget窗口類。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.QWidget基本概念

  • QWidget 類是所有窗口類的父類 (控件類是也屬于窗口類),
  • QWidget 類的父類的 QObject, 也就意味著所有的窗口類對象只要指定了父對象, 都可以實現(xiàn)內(nèi)存資源的自動回收.
  • 可以內(nèi)嵌到其他窗口的內(nèi)部,沒有邊框,需要指定父類窗口
  • 可以作為獨立的窗口顯示,有邊框,不需要指定父類窗口。

【QT】——QWidget窗口類,QT筆記,qt,開發(fā)語言

2.常用接口?

2.1設(shè)置父對象

// 構(gòu)造函數(shù)
QWidget::QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());

// 公共成員函數(shù)
// 給當(dāng)前窗口設(shè)置父對象
void QWidget::setParent(QWidget *parent);
void QWidget::setParent(QWidget *parent, Qt::WindowFlags f);
// 獲取當(dāng)前窗口的父對象, 沒有父對象返回 nullptr
QWidget *QWidget::parentWidget() const;
。

2.2窗口位置

//------------- 窗口位置 -------------
// 得到相對于當(dāng)前窗口父窗口的幾何信息, 邊框也被計算在內(nèi),標題欄和工具欄都屬于邊框
QRect QWidget::frameGeometry() const;
// 得到相對于當(dāng)前窗口父窗口的幾何信息, 不包括邊框
const QRect &geometry() const;
// 設(shè)置當(dāng)前窗口的幾何信息(位置和尺寸信息), 不包括邊框
void setGeometry(int x, int y, int w, int h);
void setGeometry(const QRect &);
    
// 移動窗口, 重新設(shè)置窗口的位置
void move(int x, int y);
void move(const QPoint &);

frameGeometry和geometry 獲取的位置信息存儲在 QRect中,QRect是是一個矩形類型。

QRect中常用的接口:

// 構(gòu)造函數(shù)
// 構(gòu)造一個空對象
QRect::QRect();
// 基于左上角坐標, 和右下角坐標構(gòu)造一個矩形對象
QRect::QRect(const QPoint &topLeft, const QPoint &bottomRight);
// 基于左上角坐標, 和 寬度, 高度構(gòu)造一個矩形對象
QRect::QRect(const QPoint &topLeft, const QSize &size);
// 通過 左上角坐標(x, y), 和 矩形尺寸(width, height) 構(gòu)造一個矩形對象
QRect::QRect(int x, int y, int width, int height);

//返回矩形左邊緣的左標
int x() const
//返回矩形上邊緣的坐標
int y() const

//返回矩形的寬度
int width() const

//返回矩形的高度
int height() const

3.3qt中的坐標體系

【QT】——QWidget窗口類,QT筆記,qt,開發(fā)語言

?3.4窗口的相對坐標

  • 在一個 Qt 窗口中一般都有很多子窗口內(nèi)嵌到這個父窗口中,其中每個窗口都有自己的坐標原點,子窗口的位置也就是其使用的坐標點就是它的父窗口坐標體系中的坐標點。
  • 每個窗口都有坐標原點;
  • 窗口的位置是基于父窗口的坐標體系來確定的,也就是說通過父窗口左上角的坐標點來確定自己的位置。
  • Qt 中窗口顯示的時候使用的相對坐標,相對于自己的父窗口

【QT】——QWidget窗口類,QT筆記,qt,開發(fā)語言

  • ?B點的坐標相對于A點,即A點坐標為(0,0)
  • C點的坐標相對于B點,即B點坐標為(0,0)

3.5 窗口尺寸

//獲取窗口的大小
QSize size() const
// 重新設(shè)置窗口的尺寸信息
void resize(int w, int h);
void resize(const QSize &);

QSize是一個描述窗口大小的類型,包括長度和高度

// 構(gòu)造函數(shù)
// 構(gòu)造空對象, 對象中的寬和高都是無效的
QSize::QSize();
// 使用寬和高構(gòu)造一個有效對象
QSize::QSize(int width, int height);

3.6 窗口標題

//------------- 窗口圖標 -------------
// 得到當(dāng)前窗口的圖標
QIcon windowIcon() const;
// 構(gòu)造圖標對象, 參數(shù)為圖片的路徑
QIcon::QIcon(const QString &fileName);
// 設(shè)置當(dāng)前窗口的圖標
void setWindowIcon(const QIcon &icon);

//------------- 窗口標題 -------------
// 得到當(dāng)前窗口的標題
QString windowTitle() const;
// 設(shè)置當(dāng)前窗口的標題
void setWindowTitle(const QString &);

3.7 窗口信號

// QWidget::setContextMenuPolicy(Qt::ContextMenuPolicy policy);
// 窗口的右鍵菜單策略 contextMenuPolicy()
// 參數(shù)設(shè)置為 Qt::CustomContextMenu, 按下鼠標右鍵發(fā)射該信號
[signal] void QWidget::customContextMenuRequested(const QPoint &pos);
// 窗口圖標發(fā)生變化, 發(fā)射此信號
[signal] void QWidget::windowIconChanged(const QIcon &icon);
// 窗口標題發(fā)生變化, 發(fā)射此信號
[signal] void QWidget::windowTitleChanged(const QString &title);

3.8 槽函數(shù)

// 關(guān)閉當(dāng)前窗口
[slot] bool QWidget::close();
// 隱藏當(dāng)前窗口
[slot] void QWidget::hide();
// 顯示當(dāng)前創(chuàng)建以及其子窗口
[slot] void QWidget::show();


//------------- 窗口狀態(tài) -------------
// 判斷窗口是否可用
bool QWidget::isEnabled() const; // 非槽函數(shù)
// 設(shè)置窗口是否可用, 不可用窗口無法接收和處理窗口事件
// 參數(shù)true->可用, false->不可用
[slot] void QWidget::setEnabled(bool);

實戰(zhàn)

基于窗口菜單實現(xiàn)策略:

在窗口點擊鼠標右鍵就能生成一個菜單出來。如下

【QT】——QWidget窗口類,QT筆記,qt,開發(fā)語言

實現(xiàn)右鍵菜單窗口需要使用到如下這個函數(shù):文章來源地址http://www.zghlxwxcb.cn/news/detail-538166.html

// 函數(shù)原型:
void QWidget::setContextMenuPolicy(Qt::ContextMenuPolicy policy);
參數(shù): 	
  - Qt::NoContextMenu	     --> 不能實現(xiàn)右鍵菜單
  - Qt::PreventContextMenu   --> 不能實現(xiàn)右鍵菜單
  - Qt::DefaultContextMenu   --> 基于事件處理器函數(shù) QWidget::contextMenuEvent() 實現(xiàn)
  - Qt::ActionsContextMenu   --> 添加到當(dāng)前窗口中所有 QAction 都會作為右鍵菜單項顯示出來
  - Qt::CustomContextMenu    --> 基于 QWidget::customContextMenuRequested() 信號實現(xiàn)


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<qwidget.h>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    resize(600,600);
    ui->setupUi(this);
    //設(shè)置窗口菜單策略
    //在窗口右鍵點擊,發(fā)出一個customContextMenuRequested信號
    setContextMenuPolicy(Qt::CustomContextMenu);
    connect(this,&QWidget::customContextMenuRequested,this,[=](){
        QMenu menu;
        //添加菜單
        menu.addAction("c++");
        menu.addAction("java");
        menu.addAction("python");
        //啟動菜單欄
        //QCursor::pos() 獲取到鼠標點擊的全局位置(屏幕的最左上方的坐標是(0,0)
        menu.exec(QCursor::pos());
    });
}

到了這里,關(guān)于【QT】——QWidget窗口類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Qt5學(xué)習(xí)筆記:Qt兩個窗口(Widget)間傳遞數(shù)據(jù)

    0x01 原理介紹 Qt兩個窗口之間傳遞數(shù)據(jù)實際上還是利用了信號與槽的概念來實現(xiàn)。 本質(zhì)上講,我們只需要實現(xiàn)A窗口發(fā)射信號,B窗口槽函數(shù)響應(yīng)信號即可。 首先我們在A窗口的頭文件中定義發(fā)射的信號: 然后在B窗口的頭文件中定義槽函數(shù): 最后我們需要將信號與槽連接起來,

    2024年02月13日
    瀏覽(30)
  • 【QT】QWidget實現(xiàn)柱狀圖

    【QT】QWidget實現(xiàn)柱狀圖

    在名為 w_bar20auto1 的 QWidget 實現(xiàn)柱狀圖

    2024年02月02日
    瀏覽(27)
  • Qt 之 QWidget QLabel

    Qt Creator 以工程項目 的方式對源碼進行管理一個Qt Creator工程包含不同類型的文件 。 .pro 項目描述文件 .pro.user用戶配置描述文件- .h頭文件 .cpp源文件 .ui界面描述文件 資源文件(圖片,音頻,等) pro 項目描述文件的基本組成 #一注釋起始符 : 以“#”開始,到這一行結(jié)束??旖?/p>

    2024年02月13日
    瀏覽(34)
  • Qt:QWidget設(shè)置半透明背景

    Qt:QWidget設(shè)置半透明背景

    設(shè)置窗體QWidget半透明背景 首先前提條件是設(shè)置: setAttribute(Qt::WA_TranslucentBackground); 方法一:重寫QPaintEvent 方法二:自定義qss樣式 方法三:使用QGraphicsOpacityEffect ,不過這種方法會影響子控件的透明度 效果參考如下:

    2024年02月15日
    瀏覽(36)
  • Qt QWidget、QDialog、QMainWindow的區(qū)別

    Qt QWidget、QDialog、QMainWindow的區(qū)別

    QWidget QWidget 是Qt框架中最基礎(chǔ)的窗口類,可以理解為用戶界面的最基本單元。QWidget類提供了一個空白窗口,可以通過繼承該類來創(chuàng)建自定義的窗口類。QWidget類提供了基本的窗口屬性和方法,如大小、位置、標題、圖標等。 QDialog QDialog 是QWidget類的子類,用于創(chuàng)建對話框窗口

    2024年02月08日
    瀏覽(21)
  • QWidget:Qt中的基本用戶界面類

    QString類是Qt中非常重要的一個類,用于表示基本用戶界面構(gòu)件。它是其他用戶界面( Widget )類的基類,例如QMainWindow、QDialog和QPushButton等。在本文中,我們將詳細介紹QWidget類的功能和應(yīng)用場景。 為了創(chuàng)建QWidget對象,我們可以使用QWidget的默認構(gòu)造函數(shù)或指定其父對象、名稱和其

    2024年02月09日
    瀏覽(23)
  • Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——文本編輯窗口 QTextEdit

    Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——文本編輯窗口 QTextEdit

    ???????? QTextEdit 類繼承于QAbstractScrollArea,QAbstractScrollArea繼承于QFrame,用來顯示富文本和純文本的窗口部件。 框架類 QFrame https://blog.csdn.net/u014491932/article/details/132188655 滾屏區(qū)域基類 QAbstractScrollArea https://blog.csdn.net/u014491932/article/details/132245486 ???????? QTextEdit 是一個先

    2024年02月11日
    瀏覽(101)
  • Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——對話框窗口 QDialog

    Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——對話框窗口 QDialog

    ??????? QDialog 類繼承于QWidget,是Qt基于對話框窗口(消息窗口 QMessageBox 、顏色選擇窗口 QColorDialog 、文件選擇窗口 QFileDialog 等)的基類。 ????????? QDialog 窗口是頂級的窗口,一般情況下,用來當(dāng)做用戶短期任務(wù)(確認、輸入、選擇)或者和用戶交流(提示、錯誤、警告、進

    2024年02月10日
    瀏覽(97)
  • Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——純文本編輯窗口 QPlainTextEdit

    Qt應(yīng)用開發(fā)(基礎(chǔ)篇)——純文本編輯窗口 QPlainTextEdit

    ???????? QPlainTextEdit 類繼承于 QAbstractScrollArea , QAbstractScrollArea 繼承于 QFrame ,是Qt用來顯示和編輯純文本的窗口。 滾屏區(qū)域基類 https://blog.csdn.net/u014491932/article/details/132245486?spm=1001.2014.3001.5501 框架類QFrame https://blog.csdn.net/u014491932/article/details/132188655?spm=1001.2014.3001.5501 ??

    2024年02月11日
    瀏覽(37)
  • [Qt學(xué)習(xí)筆記]Halcon窗口界面上顯示文字的字體尺寸、樣式修改

    [Qt學(xué)習(xí)筆記]Halcon窗口界面上顯示文字的字體尺寸、樣式修改

    養(yǎng)成良好的查資料習(xí)慣,可以實現(xiàn)事半功倍。 在Halcon12中,有set_font和set_display_font兩個算子,其中set_display_font是本地函數(shù)形式,所以最終的實現(xiàn)算子為set_font. 按照不同的系統(tǒng)環(huán)境下,使用方法略有不同: 不同的系統(tǒng)下使用的方法不同,原本以為比較簡單,直接按照文檔的

    2024年03月20日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包