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

Qt修改QMainWindow的標(biāo)題欄樣式

這篇具有很好參考價(jià)值的文章主要介紹了Qt修改QMainWindow的標(biāo)題欄樣式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Qt修改QMainWindow的標(biāo)題欄樣式

  • 自定義標(biāo)題欄樣式

  • 效果圖
    qmainwindow設(shè)置標(biāo)題欄顏色,編程,qt,ui,開發(fā)語言

  • 代碼展示文章來源地址http://www.zghlxwxcb.cn/news/detail-538523.html

class WidgetBase : public QWidget
{
	Q_OBJECT
public:
	explicit WidgetBase(QWidget *parent = 0);
};

class TitleStyle : public QWidget
{
    Q_OBJECT

public:
    TitleStyle(QWidget *parent = nullptr);
    ~TitleStyle();

	void SetTitleContent(const char* pContent);

public slots:
	void OnMin();
	void OnMax();
	void OnClose();

protected:
	virtual void mouseDoubleClickEvent(QMouseEvent *event);
	virtual void mousePressEvent(QMouseEvent *event);
	virtual bool eventFilter(QObject *obj, QEvent *event);

private:
	void InitSignalSlot();
	void InitSytleSheet();
private:
	Ui::TitleStyleClass ui;
};
#include "TitleStyle.h"
#include <QMouseEvent>
#include <windows.h>

TitleStyle::TitleStyle(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

	InitSignalSlot();

	InitSytleSheet();
}

TitleStyle::~TitleStyle()
{}


void TitleStyle::SetTitleContent(const char* pContent)
{
	if (pContent)
	{
		ui.lblTitle->setText(QString::fromLocal8Bit(pContent));
	}
}

void TitleStyle::OnMin()
{
	QWidget *pWindow = this->window();
	if (pWindow->isWindow())
	{
		pWindow->showMinimized();
	}
}

void TitleStyle::OnMax()
{
	QWidget *pWindow = this->window();
	if (pWindow->isWindow())
	{
		pWindow->isMaximized() ? pWindow->showNormal() : pWindow->showMaximized();
	}
}

void TitleStyle::OnClose()
{
	QWidget *pWindow = this->window();
	if (pWindow->isWindow())
	{
		pWindow->close();
	}
}

void TitleStyle::mouseDoubleClickEvent(QMouseEvent *event)
{
	Q_UNUSED(event);
	emit ui.btnMax->clicked();
}

void TitleStyle::mousePressEvent(QMouseEvent *event)
{
	if (ReleaseCapture())
	{
		QWidget *pWindow = this->window();
		if (pWindow->isWindow())
		{
			SendMessage(HWND(pWindow->winId()), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
		}
	}
	event->ignore();
}

bool TitleStyle::eventFilter(QObject *obj, QEvent *event)
{
	switch (event->type())
	{
	case QEvent::WindowTitleChange:
	{
		QWidget *pWidget = qobject_cast<QWidget *>(obj);
		if (pWidget)
		{
			ui.lblTitle->setText(pWidget->windowTitle());
			return true;
		}
	}
	case QEvent::WindowIconChange:
	{
		QWidget *pWidget = qobject_cast<QWidget *>(obj);
		if (pWidget)
		{
			QIcon icon = pWidget->windowIcon();
			ui.lblIcon->setPixmap(icon.pixmap(ui.lblIcon->size()));
			return true;
		}
	}
	case QEvent::WindowStateChange:
	case QEvent::Resize:
	{
		return true;
	}
	default:
	{
		return false;
	}
	}
	return QWidget::eventFilter(obj, event);
}

void TitleStyle::InitSignalSlot()
{
	connect(ui.btnMin, SIGNAL(clicked()), this, SLOT(OnMin()));
	connect(ui.btnMax, SIGNAL(clicked()), this, SLOT(OnMax()));
	connect(ui.btnClose, SIGNAL(clicked()), this, SLOT(OnClose()));
}

void TitleStyle::InitSytleSheet()
{
	ui.btnMin->setIcon(QIcon(":/image/image/btnMin.png"));
	ui.btnMax->setIcon(QIcon(":/image/image/btnMax.png"));
	ui.btnClose->setIcon(QIcon(":/image/image/btnClose.png"));

	ui.lblIcon->setScaledContents(true);
	ui.lblIcon->setPixmap(QPixmap(":/image/image/lblIcon.png"));
	
	ui.lblTitle->setStyleSheet("color: #FF96DB");

	ui.widget->setStyleSheet("background-color: rgb(85, 170, 0);");
}

WidgetBase::WidgetBase(QWidget *parent /*= 0*/)
{

}
  • 主窗口調(diào)用
QtWidgetsApplication6::QtWidgetsApplication6(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	WidgetBase *pTopWindow = new WidgetBase();
	pTopWindow->setWindowFlags(Qt::FramelessWindowHint);

	this->setParent(pTopWindow);
	TitleStyle *pTitleWidget = new TitleStyle(pTopWindow);
	pTitleWidget->SetTitleContent("測(cè)試程序");
	pTopWindow->setSizePolicy(this->sizePolicy());
	pTopWindow->setMaximumSize(this->maximumSize());
	pTopWindow->setMaximumSize(this->maximumSize());

	this->installEventFilter(pTitleWidget);
	QGridLayout *pLayout = new QGridLayout();
	pLayout->addWidget(pTitleWidget);
	pLayout->addWidget(this);
	pLayout->setSpacing(0);
	pLayout->setContentsMargins(0, 0, 0, 0);
	pTopWindow->setLayout(pLayout);

	pTopWindow->show();
}
  • 需要自己用Qt Designer創(chuàng)建一個(gè)布局界面,如下圖:
    qmainwindow設(shè)置標(biāo)題欄顏色,編程,qt,ui,開發(fā)語言
  • 標(biāo)記自己學(xué)習(xí)

到了這里,關(guān)于Qt修改QMainWindow的標(biāo)題欄樣式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • qt 系列(二)---qt designer通過設(shè)置控件樣式表進(jìn)行背景顏色設(shè)置

    qt 系列(二)---qt designer通過設(shè)置控件樣式表進(jìn)行背景顏色設(shè)置

    1. 前言 一般Layouts不可以進(jìn)行改變樣式表,當(dāng)我們想修改背景樣式表,同時(shí)又不改變其他控件的顏色時(shí),可以選擇List View 控件改變背景顏色。 2. 設(shè)置背景 (1)配置 .qrc 文件 新建mypicture.qrc文件,記事本打開 (2)右鍵選擇項(xiàng)目–添加–現(xiàn)有項(xiàng),選擇建立的.qrc文件,此時(shí),項(xiàng)

    2024年02月06日
    瀏覽(91)
  • QMainwindow窗口

    QMainwindow窗口

    只能有一個(gè), 位于窗口的最上方 關(guān)于頂級(jí)菜單可以直接在UI窗口中雙擊, 直接輸入文本信息即可, 對(duì)應(yīng)子菜單項(xiàng)也可以通過先雙擊在輸入的方式完成添加, 但是這種方式不支持中文的輸入。 輸入文字,按回車確認(rèn)。 能創(chuàng)建二級(jí)菜單欄 新建動(dòng)作( action ) 得到: 將剛剛創(chuàng)建的動(dòng)作

    2024年02月13日
    瀏覽(15)
  • QMainWindow

    QMainWindow

    QMainWindow是一個(gè)為用戶提供主窗口程序 的類,包含一個(gè)菜單欄(menu bar)、多個(gè)工具欄 (tool bars)、多個(gè)錨接部件(dock widgets)、―個(gè) 狀態(tài)欄(status bar )及一個(gè)中心部件(central widget),是許多應(yīng)用程序的基礎(chǔ),如文本編輯器、 圖片編輯器等。 菜單欄 菜單是一系列命令的列表。為了實(shí)現(xiàn)菜

    2024年02月14日
    瀏覽(11)
  • Qt Creator設(shè)置IDE的字體、顏色、主題樣式

    Qt Creator設(shè)置IDE的字體、顏色、主題樣式

    ? ? Qt是一款開源的、跨平臺(tái)的C++開發(fā)框架,支持Windows、Linux、Mac系統(tǒng),從1995發(fā)布第一版以來,發(fā)展迅猛,最開始是用于Nokia手機(jī)的Symbian(塞班)系統(tǒng)和應(yīng)用程序開發(fā),現(xiàn)在是用于嵌入式軟件、桌面軟件(比如WPS、VirtualBox)、Android軟件等開發(fā),到2023年12月,其最新的版本已經(jīng)更

    2024年02月04日
    瀏覽(31)
  • Qt配置設(shè)置,修改全文字體大小顏色,背景顏色

    Qt配置設(shè)置,修改全文字體大小顏色,背景顏色

    這是完成時(shí)的demo,選擇所需。 點(diǎn)擊確認(rèn)修改,全局修改,效果第二張圖。 在沒有點(diǎn)擊確認(rèn)修改時(shí),字體等按鈕的改變只會(huì)在文本框里面體現(xiàn)出來。點(diǎn)擊確認(rèn)才會(huì)修改全局的東西。點(diǎn)擊恢復(fù)默認(rèn)時(shí),字體字號(hào)顏色控件全部恢復(fù)初始狀態(tài),當(dāng)點(diǎn)擊確認(rèn)修改,全局才會(huì)改為初始狀

    2024年02月11日
    瀏覽(19)
  • PyQt5 GUI編程(QMainWindow與QWidget模塊結(jié)合使用)

    PyQt5 GUI編程(QMainWindow與QWidget模塊結(jié)合使用)

    QWidget是所有用戶界面對(duì)象的基類,而QMainWindow 用于創(chuàng)建主應(yīng)用程序窗口的類。它是 QWidget 的一個(gè)子類,提供了創(chuàng)建具有菜單欄、工具欄、狀態(tài)欄等的主窗口所需的功能。上篇主要介紹了基本使用,創(chuàng)建窗口時(shí)都是繼承單個(gè)模塊,本章主要介紹下兩個(gè)模塊的結(jié)合使用。 1.我們先

    2024年04月08日
    瀏覽(22)
  • MATLAB修改字體大小,加粗,字體樣式,字體顏色,線形,希臘字母,特殊符號(hào),圖片文本位置及字體設(shè)置等

    MATLAB修改字體大小,加粗,字體樣式,字體顏色,線形,希臘字母,特殊符號(hào),圖片文本位置及字體設(shè)置等

    1、修改label的字體大小、格式、加粗、顏色: xlabel(\\\'標(biāo)題\\\',\\\'FontSize\\\',14,\\\'FontWeight\\\',\\\'bold\\\',\\\'FontName\\\',\\\'Times New Roman\\\',\\\'Color\\\',\\\'r\\\'); 2、標(biāo)題的旋轉(zhuǎn):xlabel(\\\'標(biāo)題\\\',\\\'rotation\\\',22);ylabel(\\\'標(biāo)題\\\',\\\'rotation\\\',-35); 3、顏色符號(hào)以及線形、標(biāo)記符號(hào) 顏色符號(hào) 標(biāo)記符號(hào) b 藍(lán)色 . 點(diǎn) g 綠色 s 方塊 r 紅色 o 圓圈

    2024年02月15日
    瀏覽(21)
  • pyqt5 QMainWindow、Dialog點(diǎn)擊關(guān)閉彈出是否確定關(guān)閉

    pyqt5 QMainWindow、Dialog點(diǎn)擊關(guān)閉彈出是否確定關(guān)閉

    1.在QMainWindow()中,重寫closeEvent函數(shù)實(shí)現(xiàn)窗口關(guān)閉事件。 2.在Dialog()中,重寫closeEvent函數(shù)實(shí)現(xiàn)窗口關(guān)閉事件。 ?以上述兩種情況做演示,其他情況同上。 注意: ?? 在main()方法中可以看到:我們最終顯示的是QMainWindow()類創(chuàng)建的窗口對(duì)象,如果想要實(shí)現(xiàn)關(guān)閉窗口觸發(fā)彈窗提示

    2024年02月15日
    瀏覽(38)
  • 【Vue】在el-table的el-table-column中,如何控制單行、單列、以及根據(jù)內(nèi)容單獨(dú)設(shè)置樣式。例如:修改文字顏色、背景顏色

    【Vue】在el-table的el-table-column中,如何控制單行、單列、以及根據(jù)內(nèi)容單獨(dú)設(shè)置樣式。例如:修改文字顏色、背景顏色

    用cell-style表屬性來實(shí)現(xiàn)。在官網(wǎng)中是這樣表述這個(gè)屬性的。 ? ?在el-table中用v-bind綁定此屬性。(v-bind的簡(jiǎn)寫是:) data中的options數(shù)據(jù)為: 此時(shí)頁面顯示為: ? ? 在methods中聲明cellStyle方法。讓我們打印出各個(gè)參數(shù)看一下代表了什么。 控制臺(tái)打印如下:? ? ?其實(shí)很好理解,

    2024年02月15日
    瀏覽(29)
  • 【微信小程序】文章樣式,標(biāo)題樣式,及設(shè)置背景~

    【微信小程序】文章樣式,標(biāo)題樣式,及設(shè)置背景~

    | background-size ?設(shè)置背景圖片大小。圖片可以保有其原有的尺寸,或者拉伸到新的尺寸,或者在保持其原有比例的同時(shí)縮放到元素的可用空間的尺寸。 | background-size: cover;適配屏幕大小 文章樣式,標(biāo)題樣式,及設(shè)置背景~ index.wxml app.wxss index.scss 注意: 微信小程序中不支持直接

    2024年02月07日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包