首页 > 其他分享 >QT 练习笔记

QT 练习笔记

时间:2025-01-22 13:53:48浏览次数:1  
标签:QT color 练习 笔记 tableWidget ui background border Qt

给控件(Label)设置显示图片  www.cnblogs.com/CUIT-DX037/p/15463399.html
打包Windows应用程序(*.exe) www.cnblogs.com/CUIT-DX037/p/15457435.html

信号(槽)绑定的使用_connect  www.cnblogs.com/CUIT-DX037/p/15667040.html

 

1. QMainWindow 窗口初始最大化

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainForm  windApp;
    windApp.showMaximized();  // 最大化

    return a.exec(); 
}

 

  

2. QPushButton按钮样式表

QPushButton{
	background-color: rgb(222,231,241);
	color:rgb(80,160,255);
	border-radius:10px;
	border-width: 1px;
	border-style: solid;
	border-color: rgb(255, 153, 105);
}

QPushButton:hover{
	background-color: rgb(111,168,255);
	color:white;
	border-color: rgb(111,168,255);
}

/* 按钮按下时 */
QPushButton:pressed{
	background-color: rgb(74,131,229);
	color:white;
	border-color: rgb(74,131,229);
}

/* 按钮不可用时 */
QPushButton:disabled{
	background-color: rgb(244,244,244);
	color: rgb(109,109,109);
	border-color: rgb(173,178,181);
}

  

3. 正则表达式,验证IP地址

    if(ipStr.isEmpty())return;

    QRegExp m_IPRegExp("^"
                       "((22[0-3])|(2[0-1][0-9])|(1[0-1][0-9])|(12[0-6])|(12[8-9])|(1[3-9][0-9])|([1-9][0-9]?))"
                       "\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))"
                       "\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))"
                       "\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))"
                       "$");

    if(false == m_IPRegExp.exactMatch(ipStr))
    {
        QMessageBox::information(this,"错误","输入的IP地址格式不正确!  ");
    }

  

4. QTableWidget 表格控件

效果:

 样式表:

QHeaderView::section,QTableCornerButton:section{ 
    text-align:center;
    padding:3px; 
    margin:0px; 
    color:#DCDCDC; 
    border:1px solid #124D65;
    border-left-width:0px; 
    border-right-width:1px; 
    border-top-width:0px;
     border-bottom-width:1px; 
    background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #629DA5,stop:1 #326D85);
}

QHeaderView::section:vertical{     /* 设置标题(垂直的) */
    /*background: transparent;*/
    padding-left: 15px;
    min-width: 30px;

}

QTableWidget::item,QTableView::item{   /* 设置视图项 */
    padding-left: 1px;
    padding-right: 1px;
    border: none;
    /*background: rgba(251,251,253,200);*/
}

QTableWidget,QTableView{
    outline: 0px;   /* 禁止焦点 */

    background:#326D85;       /* 背景颜色 */
    gridline-color:#124D65;   /* 网格线 颜色 */
    border:2px solid #326D85;
    alternate-background-color:#427285;    /* 设置间隔行的颜色,若有启用,则必须使用代码:tableWidget->setAlternatingRowColors(true); */
    color:#EFEFEF;
    text-align:center;
    font-size:14px;
}

QTableWidget:item:selected{  /* 单元格,选中状态时:渐变色 */
    color:#FFFFFF;
    background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #60A4BF,stop:1 #30748F);
}

QTableWidget::item:hover{   /* 单元格,鼠标悬停 */
    background:#5999B2;
}

QScrollBar:vertical{
    background:#CCCCCC; 
    padding:0px;
    border-radius:4px;
    max-width:12px;
}

QScrollBar::handle:hover:vertical,QScrollBar:handle:pressed:vertical{
    background:#30748F;
}

QScrollBar::handle:vertical{
    border-radius:4px;
    background:qlineargradient(spread:pad,x1:0,y1:0,x2:1,y2:0,stop:0 #65A9BF,stop:1 #20647F);;  /* 竖直滚动条,块 默认颜色 */
}

QScrollBar::sub-page:vertical{
    background:#CCCCCC;  /* 竖直滚动条,上半部分颜色 */
}

QScrollBar::add-page:vertical{
    background:#BBBBBB;  /* 竖直滚动条,下半部分颜色 */
}

QScrollBar::sub-line:vertical{
    background:none;
}

QScrollBar::add-line:vertical{
    background:none;
}

相关代码: 

private slots:
    void cellChanged(int row,int col);
    ui->tableWidget->setColumnCount(4); // 4个列
    ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "设备标识" << "设备类型" << "通讯方式" << "通讯地址");
    ui->tableWidget->setRowCount(33);   // 33行

    ui->tableWidget->resize(700,450);
    ui->tableWidget->setColumnWidth(0,100);  // 列宽
    ui->tableWidget->setColumnWidth(1,100);
    ui->tableWidget->setColumnWidth(2,90);
    // ui->tableWidget->setColumnWidth(3,260);
    ui->tableWidget->horizontalHeader()->setStretchLastSection(true); //设置充满表宽度
    ui->tableWidget->setAlternatingRowColors(true); // 允许 改变行颜色
    ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);  // 单击 选中整行
    ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); // 只能选中1行,不能多选
    // ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);   // 设置全都不可编辑

    // 添加 数据显示
    for(int i=0; i < 33; i++){
        DeviceConfig dc = _DeviceMgr->getConfig(i);

        ui->tableWidget->setItem(i,0,new QTableWidgetItem(dc.getDeviceId()));
        ui->tableWidget->setItem(i,1,new QTableWidgetItem(dc.getDeviceTypeStr()));
        ui->tableWidget->setItem(i,2,new QTableWidgetItem(dc.getDriverType()));
        ui->tableWidget->setItem(i,3,new QTableWidgetItem(dc.getIpPort()));

        // 前3列的 每一个单元格,居中对齐
        ui->tableWidget->item(i,0)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->tableWidget->item(i,1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->tableWidget->item(i,2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);

        ui->tableWidget->item(i,0)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
        ui->tableWidget->item(i,1)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
        ui->tableWidget->item(i,2)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
        ui->tableWidget->item(i,3)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable ); // 设置此单元格可以编辑
    }

    // 绑定 信号-槽
    connect(ui->tableWidget,    &QTableWidget::cellChanged,     this,   &DeviceManagerDlg::cellChanged                          );

 5. QComboBox (下拉选择框)相关

QT QComboBox使用详解_双子座断点的博客-CSDN博客_qtcombobox  https://blog.csdn.net/qq_37529913/article/details/109766009

QT 控件重绘_双子座断点的博客-CSDN博客_qt控件重绘  https://blog.csdn.net/qq_37529913/article/details/109319022

 

6. Dialog窗口

 QT制作软件---去除系统自带的Dialog边框_桂花年糕仔的博客-CSDN博客_qdialog去掉边框   https://blog.csdn.net/qq_40077565/article/details/121375373

QT制作软件---窗口跟随鼠标进行移动_桂花年糕仔的博客-CSDN博客_qt移动鼠标位置   https://blog.csdn.net/qq_40077565/article/details/121378717

 

 

 



标签:QT,color,练习,笔记,tableWidget,ui,background,border,Qt
From: https://www.cnblogs.com/CUIT-DX037/p/16774705.html

相关文章

  • Linux 笔记
    目录Linux目录结构Linux目录与Windows目录对比Windows目录结构Linux目录结构Linux世界里---一切皆文件Linux目录结构详解/bin/sbin/home/root/boot/lib/etc/usr/proc,别动/srv,别动/sys,别动/tmp/dev/media/mnt/opt/usr/local/var/selinux常用快捷键案例常用命令开机/......
  • 下降幂、斯特林数学习笔记
    下降幂注:这里其实还有上升幂。定义下降幂:\(x^\underline{k}=\prod\limits_{i=x-k+1}^xi=\frac{x!}{(x-k)!}\)上升幂:\(x^\overline{k}=\prod\limits_{i=x}^{x+k-1}i=\frac{(x+k-1)!}{(x-1)!}\)性质幂相加:\[n^\underline{a+b}=n^\underlinea(n-a)^\underlineb\]\[n^\overl......
  • 408数据结构笔记(Day 1)
    学习数据结构基础(c语言): 一、什么是分支(if/lese、switch),循环(for、while、dowhile)?程序的三种结构:顺序,分支,循环1、顺序:按照先后顺序执行比如:inta=2; ①doubleb=3.0;②先执行第①步,然后执行第②步。2、分支:可以使用 if、switch 实现分支结构if语句if(条件)......
  • Catlike Coding Custom SRP笔记 - 平行光
    原文链接:DirectionalLights 效果图 CustomRenderPipelineAsset.cs[CreateAssetMenu(menuName="Rendering/CustomRenderPipeline")]publicclassCustomRenderPipelineAsset:RenderPipelineAsset{publicbooluseDynamicBatching=true;//启用动态......
  • 计算机网络(哈工大版)-笔记1
    第一章·计算机网络概述计算机网络(简称网络)有若干个结点(node)和链接这些结点的链路(link)组成。网络中的结点可以是计算机,集线器,交换机或者路由器等。网络把许多计算机连接在一起,而互连网把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机。互联网的应用有形......
  • 【跟着阿舜学音乐-笔记】2.1乐器法与软件音源
    2.1乐器法与软件音源乐器法:即乐器的演奏方法,包含从乐器的结构、原理触发,研究各种乐器的演奏方法、技巧及其特点等。通过只有先掌握乐器法,才能完整地在编曲中呈现乐器独特的美感。其中较为重要的就是乐队四大件套——架子鼓(主套鼓)、贝斯、钢琴(键盘类)以及吉他。此外还有管弦乐、......
  • 鸟哥linux私房菜笔记(一)
    鸟哥私房菜linux学习笔记(一)之所以学鸟哥linux私房菜这本书,是因为受到多人推荐,本书在业界也一直好评,买来一看,名副其实,从最基础的计算机构成开始讲起,适合爱好者和从业者学习或者深入研究。本书有若干章节,我挑选了部分来学习,重点学习文件管理和shell.第一章linux的起源unix作......
  • JavaScript学习笔记(1)
    html完成了架子,css做了美化,但是网页是死的,我们需要给他注入灵魂,所以接下来我们需要学习JavaScript,这门语言会让我们的页面能够和用户进行交互。一、引入方式1.内部脚本将JS代码定义在HTML页面中JavaScript代码必须位于<script></script>标签之间在H......
  • 神级STL结构-rope大法(学习笔记)
    简介:他是一个\(STL\)中自带的一种数据结构,是pb_ds(Policy-BasedDataStructures)库的一个分支,由于他的底层是可持久化平衡树——红黑树,或块状链表。所以他的操作的复杂度几乎约等于\(O(logn)\)或\(\sqrtn\)。它可支持操作较多,完全可以理解成加强版的\(vector\)。最为抽......
  • Redis数据库笔记——ZSet的底层实现(跳表)
    大家好,这里是GoodNote,关注公主号:Goodnote,专栏文章私信限时Free。本文详细介绍ZSet数据类型中跳表的底层实现,包括基本特点和常用操作。文章目录ZSet(有序集合)概述基本特点底层实现Skiplist跳表概述结构跳表的基本操作1.查找操作:`Search`2.插入操作:`Insert`3.删......