Qt界面设计 -- 点滴记录(★firecat推荐★)

简介: Qt界面设计 -- 点滴记录(★firecat推荐★)

0、利用好CSS,实现Qt控件美化


https://blog.csdn.net/libaineu2004/article/details/19621831



1、Qt splitter设计师属性最下方有两个选项:


opaqueresize和childrenCollapsible


勾选之后,则分割器拖动时子窗口会重绘;不勾选则不重绘。



2、QTreeView设置行背景色(颜色) 交替


使用原因:QTreeView的背景默认是一片空白的,这样在视觉上不美观。


达到效果:如果要达到行背景色交替改变,隔一行颜色变化一下


涉及函数:voidQTreeView::setAlternatingRowColors ( boolenable);


示例代码:


centertreeview->setAlternatingRowColors(true);


具体的行背景颜色RGB可以通过QSS实现。


QTableView {

 background: rgb(220,235,255);

 alternate-background-color: rgb(238,238,242);

       color:black;

}


3、要想实现mouseMoveEvent,则需要在构造函数中添加setMouseTrack(true),直接得到监听事件。若是setMouseTrack(false),只有鼠标按下才会有mouseMove监听事件响应。



4、QTableView列宽自适应文字宽度


this->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);



5、用了Qtableview 搭配 从QAbstractTableModel 继承的XxxModel, 使用内部标准信号 emit dataChanged( leftTop, rightBottom ); 后,tableview的数据会更新



6、QMainWindow不是普通的Widget,需要注意细节setCentralWidget是必须的:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    /*错误的方式
    QPushButton *btn1 = new QPushButton("hello", this);
    QPushButton *btn2 = new QPushButton("world", this);
    QVBoxLayout *lay = new QVBoxLayout(this);
    lay->addWidget(btn1);
    lay->addWidget(btn2);
    this->setLayout(lay);*/
    /*错误的方式
    QPushButton *btn1 = new QPushButton("hello", this->centralWidget());
    QPushButton *btn2 = new QPushButton("world", this->centralWidget());
    QVBoxLayout *lay = new QVBoxLayout(this->centralWidget());
    lay->addWidget(btn1);
    lay->addWidget(btn2);
    this->centralWidget()->setLayout(lay);*/
    /*错误的方式
    QPushButton *btn1 = new QPushButton("hello");
    QPushButton *btn2 = new QPushButton("world");
    QVBoxLayout *lay = new QVBoxLayout();
    lay->addWidget(btn1);
    lay->addWidget(btn2);
    this->centralWidget()->setLayout(lay);*/
    //正确的方式
    QWidget *w = new QWidget(this);
    QPushButton *btn1 = new QPushButton("hello", w);
    QPushButton *btn2 = new QPushButton("world", w);
    QVBoxLayout *lay1 = new QVBoxLayout(w);
    lay1->addWidget(btn1);
    lay1->addWidget(btn2);
    w->setLayout(lay1);
    setCentralWidget(w);
}

image.png

我们也可以删除它:


   //删除中央窗体

   QWidget *p = takeCentralWidget();


   if (p)

   {

       delete p;

   }


来源github的QDockWidget_VSStudioMode项目。


相关文章
|
7月前
【qt】纯代码界面设计
【qt】纯代码界面设计
171 2
Vs + Qt 界面设计常用函数合集
Vs + Qt 界面设计常用函数合集
|
存储 编解码 关系型数据库
案例分享:Qt激光加工焊接设备信息化软件研发(西门子PLC,mysql数据库,用户权限控制,界面设计,参数定制,播放器,二维图,rgv小车,期限控制,参数调试等)
国产大型机床中Qt上位机激光焊接系统软件案例分享,介绍了Qt在国产化机床上的各种应用案例,并附上案例的具体功能界面供大家学习
案例分享:Qt激光加工焊接设备信息化软件研发(西门子PLC,mysql数据库,用户权限控制,界面设计,参数定制,播放器,二维图,rgv小车,期限控制,参数调试等)
Qt界面设计1
最近刚接触Qt 对于QML做界面感觉已经很轻松了,但是想尝试一下GUI..准备做一个理财的小软件 ....慢慢记录我的一点一滴的学习经历. 自己封装界面UI 遇到了好多新手级别的问题=_=!!!    1、界面透明 方法好多设置pattle 等等这里我就用这一个 ydw.
967 0
|
5月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
185 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
4月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
92 0
|
3月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
3月前
|
4月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
164 2

推荐镜像

更多
下一篇
无影云桌面