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

QDialog實現(xiàn)圓角對話框的三種方式

這篇具有很好參考價值的文章主要介紹了QDialog實現(xiàn)圓角對話框的三種方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

方式一:通過QBitMap設(shè)置控件有效繪制區(qū)域(缺點:容易產(chǎn)生鋸齒,鋸齒來自于QBitMap)

  1. Dialog繼承Qdialog
  2. 設(shè)置無邊框及背景透明
    this->setWindowFlags(Qt::FramelessWindowHint); //去除標題邊框
    this->setAttribute(Qt::WA_TranslucentBackground);//背景透明
    
  3. 重寫paintEvent
    void Dialog::paintEvent(QPaintEvent *event)
    {
            //1. 繪制樣式(qss),例如qss中有背景色最后出來的dialog也是對應(yīng)背景顏色
            QStyleOption opt;
            opt.initFrom(this);
            QPainter p(this);
            style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//繪制樣式
    
            //2. 設(shè)置掩碼,約定painter繪制區(qū)域
            QBitmap bmp(this->size());
            bmp.fill();//fill(const QColor &fillColor = Qt::white);
    
            QPainter painter(&bmp);
            //painter.setRenderHint(QPainter::Antialiasing, true);//解決繪圖有鋸齒,此方式針對掩碼的bitmap無效
            painter.setPen(Qt::NoPen);
            painter.setBrush(Qt::black);//掩碼值
            painter.drawRoundedRect(bmp.rect(), 36, 36);//在bitmap中繪制圓角矩形
    
            setMask(bmp);//設(shè)置矩形掩碼以確定本控件可繪制區(qū)域
    
        QDialog::paintEvent(event);
    }
    

參考鏈接:https://blog.csdn.net/ajcjldd/article/details/127306630

方式二:QPainter直接繪制圓角矩形(缺點:無法使用qss方式配置背景色,需要根據(jù)主題切換brush顏色)

  1. 同上

  2. 同上

  3. 重寫paintEvent

    void Dialog::paintEvent(QPaintEvent *event)
    {
            QPainter painter(this);
            painter.setRenderHint(QPainter::Antialiasing); // 設(shè)置抗鋸齒,不然邊框會有明顯鋸齒
            painter.setPen(Qt::NoPen);
            painter.setBrush(Qt::white);                   // 設(shè)置窗體顏色
    
            QRect rect = this->rect();
            painter.drawRoundedRect(rect, 36, 36);
    }
    

參考鏈接:https://zhuanlan.zhihu.com/p/513853572

方式三:QDialog中內(nèi)嵌QFrame,并使用qss設(shè)置QFrame對應(yīng)圓角(缺點:完美)

  1. 同上

  2. 同上

  3. Dialog內(nèi)嵌QFrame,與Dialog同尺寸

    void Dialog::setupUi()
    {
    	this->setWindowModality(Qt::ApplicationModal);
        this->setFixedSize(QSize(WIDTH, HEIGHT));
        this->setAttribute(Qt::WA_TranslucentBackground);//設(shè)置背景透明
        this->setWindowFlags(Qt::FramelessWindowHint); //去除標題框
    
        //back widget
        frame = new QFrame(this);
        frame->setObjectName("Frame");
        frame->setFixedSize(this->size());
        frame->setLayout(mainLayout);
    }
    
  4. 設(shè)置qss

    QFrame#Frame{
        background: #333333;
        border-radius: 16px 16px 16px 16px;
    }
    

參考鏈接:網(wǎng)上比較多,搜下文章來源地址http://www.zghlxwxcb.cn/news/detail-738106.html

到了這里,關(guān)于QDialog實現(xiàn)圓角對話框的三種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • QT基礎(chǔ)教程之五對話框QDialog

    對話框是 GUI 程序中不可或缺的組成部分。很多不能或者不適合放入主窗口的功能組件都必須放在對話框中設(shè)置。對話框通常會是一個頂層窗口,出現(xiàn)在程序最上層,用于實現(xiàn)短期任務(wù)或者簡潔的用戶交互。 Qt 中使用QDialog類實現(xiàn)對話框。就像主窗口一樣,我們通常會設(shè)計一個

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

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

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

    2024年02月10日
    瀏覽(98)
  • 【pyqt5界面化工具開發(fā)-8】窗口開發(fā)-QDialog對話框

    【pyqt5界面化工具開發(fā)-8】窗口開發(fā)-QDialog對話框

    目錄 一、調(diào)用父類的菜單 二、添加更多的布局在對話框內(nèi) 和前面Qwedget一樣的結(jié)構(gòu)(不做過多介紹) 可以參考代碼中的注釋 這和前面講的Qwedget窗口布局基本上一樣了 運行結(jié)果:

    2024年02月11日
    瀏覽(90)
  • 小程序?qū)υ捒虻膶崿F(xiàn)方式

    在微信小程序中,有以下幾種方式可以實現(xiàn)對話框(Dialog)的展示: 1. wx.showModal :wx.showModal 是微信小程序提供的一個API,用于顯示模態(tài)對話框。模態(tài)對話框是一種阻塞式的對話框,需要用戶進行交互后才能關(guān)閉??梢酝ㄟ^調(diào)用 wx.showModal 方法來顯示對話框,并設(shè)置標題、內(nèi)

    2024年02月12日
    瀏覽(19)
  • vue:聊天對話框的實現(xiàn)

    實現(xiàn)效果:不知道怎么錄屏 就用圖片展示了,實現(xiàn)了聊天框的基礎(chǔ)功能,也有一些細節(jié)考慮不完全。未輸入消息時可發(fā)送圖片或視頻,輸入消息后顯示發(fā)送按鈕,保持滾動條在位于底部的最新消息。 ?實現(xiàn)方式: 1.布局:使用了彈性布局,flex-direction: row-reverse;flex-direction

    2023年04月08日
    瀏覽(17)
  • 小程序?qū)υ捒虻膸追N實現(xiàn)方式

    在微信小程序中,有以下幾種方式可以實現(xiàn)對話框(Dialog)的展示: 1. wx.showModal :wx.showModal 是微信小程序提供的一個API,用于顯示模態(tài)對話框。模態(tài)對話框是一種阻塞式的對話框,需要用戶進行交互后才能關(guān)閉。可以通過調(diào)用 wx.showModal 方法來顯示對話框,并設(shè)置標題、內(nèi)

    2024年02月10日
    瀏覽(18)
  • 【小程序】如何實現(xiàn)從底部彈出對話框

    【小程序】如何實現(xiàn)從底部彈出對話框

    前面兩篇兩篇文章介紹了如何在小程序中實現(xiàn)上下滑動效果以及如何用 Canvas 繪制一張圖片,這一篇作為前兩篇的延續(xù),介紹 如何從底部彈出一個對話框 。 相比而言,底部彈出對話框的功能比較通用,因此非常適合定義成組件(component)。 先來看一下最終實現(xiàn)效果: 首先是

    2024年02月07日
    瀏覽(19)
  • element-ui實現(xiàn)一個動態(tài)布局的對話框

    element-ui實現(xiàn)一個動態(tài)布局的對話框

    ?我把組件上傳到npm了,具體使用方法請看:https://gitee.com/zengyanfang/tablelist-way/blob/master/README.md#%E5%8F%82%E6%95%B0 前言:在工作中有各種各樣的對話框,最多就是填寫信息這些的,一般這樣的內(nèi)容都是el-input輸入框,el-select選擇框等等之內(nèi)的,這時我們就可以封裝成一個組件,想

    2024年02月01日
    瀏覽(25)
  • 【windows編程之對話框】對話框原理,對話框的創(chuàng)建

    【windows編程之對話框】對話框原理,對話框的創(chuàng)建

    在本章節(jié)中我們來講解Windows/Win32編程中對話框的原理和對話框的創(chuàng)建,我們在前幾篇章節(jié)中講解到了普通窗口中回調(diào)函數(shù)的處理,在普通窗口的窗口消息處理函數(shù)(回調(diào)函數(shù))中,系統(tǒng)會首先調(diào)用我們自己寫的回調(diào)函數(shù),我們自己編寫的回調(diào)函數(shù)沒有處理的消息,才會交給系

    2024年02月03日
    瀏覽(101)
  • vue+elementui實現(xiàn)鼠標觸及當前頁面右邊緣,右側(cè)彈出新的對話框

    vue+elementui實現(xiàn)鼠標觸及當前頁面右邊緣,右側(cè)彈出新的對話框

    目前項目中需要自定義大屏,但是大屏右側(cè)顯示矩形對話框有一點突兀,所以做成鼠標靠近頁面右側(cè)邊緣的時候?qū)υ捒驈棾?,點擊對話框上的回縮按鈕后,對話框隱藏。 效果如圖所示 對話框使用 elemetui 自帶的 el-drawer ,設(shè)置其是否展示參數(shù)初始化為 false 在最外層的div標簽添

    2024年02月02日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包