日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt界面制作(QSS、获取屏幕分辨率、自定义控件、版权)

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt界面制作(QSS、获取屏幕分辨率、自定义控件、版权) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源碼下載地址:

https://download.csdn.net/download/qq78442761/10534055

程序運行截圖:



程序版權


程序結構圖如下:



主要就幾點:

1.QSS

2.自定義控件

3.獲取屏幕分辨率



代碼如下:

mylabel.h

#ifndef MYLABEL_H #define MYLABEL_H#include <QObject> #include <QLabel>#define CloseLabel 0 #define MinLabel 1class MyLabel : public QLabel {Q_OBJECT public:MyLabel(QWidget *parent=0);void setStatus(const int status);~MyLabel();protected:void mouseReleaseEvent(QMouseEvent *event);signals:void prepareToClose();void prepareToMin();private:int m_status;};#endif // MYLABEL_H


widget.h

#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPoint>class QTimer;namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();void mouseMoveEvent(QMouseEvent *event);void mousePressEvent(QMouseEvent *event);void mouseReleaseEvent(QMouseEvent *event);protected slots:void showDynamicTime();void windowsClose();void windowsShowMin();private:Ui::Widget *ui;QPoint z;QTimer *m_pTimer; };#endif // WIDGET_H


main.cpp

#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }


mylabel.cpp

#include "mylabel.h" #include <QDebug> #include <QMouseEvent>MyLabel::MyLabel(QWidget *parent):QLabel(parent) {}void MyLabel::setStatus(const int status) {m_status=status; }MyLabel::~MyLabel() {}void MyLabel::mouseReleaseEvent(QMouseEvent *event) {if(event->button()==Qt::LeftButton){if(m_status==CloseLabel){emit prepareToClose();}else if(m_status==MinLabel){emit prepareToMin();}} }

widget.cpp

#include "widget.h" #include "ui_widget.h"#include <QMouseEvent> #include <QFile> #include <QEvent> #include <QDateTime> #include <QTimer> #include <QRect> #include <QDesktopWidget> #include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->timeLabel->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));this->setWindowFlags(Qt::FramelessWindowHint);ui->titleLabel->setText("博客:CSDN IT1995");QFile myFile;myFile.setFileName(":/img/myQSS.txt");myFile.open(QFile::ReadOnly);QString styleSheet=QString(myFile.readAll());qApp->setStyleSheet(styleSheet);myFile.close();QRect sceenRect=QApplication::desktop()->screenGeometry();setFixedSize(sceenRect.width()/6,sceenRect.height()/2);m_pTimer=new QTimer(this);connect(m_pTimer,SIGNAL(timeout()),this,SLOT(showDynamicTime()));m_pTimer->start(1000);ui->closeLabel->setStatus(CloseLabel);ui->minLabel->setStatus(MinLabel);connect(ui->closeLabel,SIGNAL(prepareToClose()),this,SLOT(windowsClose()));connect(ui->minLabel,SIGNAL(prepareToMin()),this,SLOT(windowsShowMin()));}Widget::~Widget() {delete ui; }void Widget::mouseMoveEvent(QMouseEvent *event) {QWidget::mouseMoveEvent(event);QPoint y=event->globalPos();QPoint x=y-z;this->move(x); }void Widget::mousePressEvent(QMouseEvent *event) {QWidget::mousePressEvent(event);QPoint y=event->globalPos();QPoint x=this->geometry().topLeft();z=y-x; }void Widget::mouseReleaseEvent(QMouseEvent *event) {QWidget::mouseReleaseEvent(event);z=QPoint(); }void Widget::showDynamicTime() {ui->timeLabel->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); }void Widget::windowsClose() {this->close(); }void Widget::windowsShowMin() {this->showMinimized(); }

QSS代碼如下:

MyLabel#minLabel{image: url(:/img/min.png); } MyLabel#minLabel:hover{image: url(:/img/min_hover.png); }MyLabel#closeLabel{image: url(:/img/close.png); } MyLabel#closeLabel:hover{image: url(:/img/close_hover.png); }QLabel#iconLabel{image: url(:/img/icon.png); } QLabel#iconLabel:hover{image: url(:/img/icon_hover.png); }QLabel#titleLabel{color: rgb(200, 39, 11);font: 14pt "華文琥珀"; }QLabel#titleLabel:hover{color: rgb(0, 85, 255);font: 14pt "華文琥珀"; }QLabel#timeLabel{color: rgb(200, 39, 11); }QLabel#timeLabel:hover{color: rgb(0, 85, 255); }QWidget#Widget{background-color: rgb(0, 0, 0); }QWidget#mainWidget{background-color: rgb(255, 255, 255); }

總結

以上是生活随笔為你收集整理的Qt界面制作(QSS、获取屏幕分辨率、自定义控件、版权)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。