精华内容
下载资源
问答
  • 环境是win10,qt 5.9.0,突然无法拖拽控件到设计界面进行可视化界面设计。 尝试过重新建立qt工程,无效。 通过重启电脑解决

    环境是win10,qt 5.9.0,突然无法拖拽控件到设计界面进行可视化界面设计。
    尝试过重新建立qt工程,无效。
    通过重启电脑解决

    展开全文
  • 使用QtUI设计开发的串口助手源码文件
  • Qt UI设计之《可缩放固定比例窗口》

    千次阅读 2020-11-06 15:13:31
    该窗口有两个窗口控件,内部控件按照自的名义比例伸缩 1 主窗口相关代码 #pragma once #include <QWidget> class uimainwnd : public QWidget { Q_OBJECT ... uimainwnd(QWidget *parent = Q_NULLPTR);...
    该窗口有两个窗口控件,内部控件按照自定义比例伸缩在这里插入图片描述
    1 主窗口相关代码
    #pragma once
    #include <QWidget>
    
    class uimainwnd : public QWidget
    {
    	Q_OBJECT
    
    public:
    	uimainwnd(QWidget *parent = Q_NULLPTR);
    	~uimainwnd();
    
    protected:
    	void resizeEvent(QResizeEvent* event) override;
    
    private:
    	void initUI();
    	QHBoxLayout *m_hbLayoutMain;	
    };
    
    #include "stdafx.h"
    #include "uimainwnd.h"
    #include "uititlebar.h"
    #include "uicontentwnd.h"
    
    static inline void GetScaleAndCenterPos(int baseCX, int baseCY, int windowCX,
    	int windowCY, int& x, int& y,
    	float& scale)
    {
    	double windowAspect, baseAspect;
    	int newCX, newCY;
    
    	windowAspect = double(windowCX) / double(windowCY);
    	baseAspect = double(baseCX) / double(baseCY);
    
    	if (windowAspect > baseAspect) {
    		scale = float(windowCY) / float(baseCY);
    		newCX = int(double(windowCY) * baseAspect);
    		newCY = windowCY;
    	}
    	else {
    		scale = float(windowCX) / float(baseCX);
    		newCX = windowCX;
    		newCY = int(float(windowCX) / baseAspect);
    	}
    
    	x = windowCX / 2 - newCX / 2;
    	y = windowCY / 2 - newCY / 2;
    }
    
    static inline void GetCenterPosFromFixedScale(int baseCX, int baseCY,
    	int windowCX, int windowCY,
    	int& x, int& y, float scale)
    {
    	x = (float(windowCX) - float(baseCX) * scale) / 2.0f;
    	y = (float(windowCY) - float(baseCY) * scale) / 2.0f;
    }
    
    static inline QSize GetPixelSize(QWidget* widget)
    {
    #ifdef SUPPORTS_FRACTIONAL_SCALING
    	return widget->size() * widget->devicePixelRatioF();
    #else
    	return widget->size() * widget->devicePixelRatio();
    #endif
    }
    
    uimainwnd::uimainwnd(QWidget *parent)
    	: QWidget(parent)
    {
    	this->setAutoFillBackground(true); // 自动刷新背景
    	QPalette palette(this->palette());
    	palette.setColor(QPalette::Background, RGB(76, 76, 76));
    	this->setPalette(palette);
    	initUI();
    }
    
    uimainwnd::~uimainwnd()
    {
    }
    
    void uimainwnd::initUI()
    {
    	setWindowTitle("固定比例窗口");
    	resize(650, 350);
    
    	m_hbLayoutMain = new QHBoxLayout(this);
    
    	uicontentwnd* _uicontentwnd = new uicontentwnd(this);
    	m_hbLayoutMain->addWidget(_uicontentwnd);
    	m_hbLayoutMain->setContentsMargins(0, 0, 0, 0);
    	setLayout(m_hbLayoutMain);
    }
    
    void uimainwnd::resizeEvent(QResizeEvent* event)
    {
    	QSize  targetSize;
    	targetSize = GetPixelSize(this);
    
    	int x;
    	int y;
    	float scale;
    
    	GetScaleAndCenterPos(
    		4, // 宽高比
    		3, // 宽高比
    		targetSize.width(),
    		targetSize.height(),
    		x,
    		y,
    		scale);
    
    	m_hbLayoutMain->setContentsMargins(x, y, x, y);
    }
    
    2 内部窗口控件相关代码
    #pragma once
    #include <QWidget>
    
    class uicontentwnd : public QWidget
    {
    	Q_OBJECT
    public:
    	uicontentwnd(QWidget *parent = Q_NULLPTR);
    	~uicontentwnd();
    };
    
    
    #include "stdafx.h"
    #include "uicontentwnd.h"
    
    uicontentwnd::uicontentwnd(QWidget *parent)
    	: QWidget(parent)
    {
    	this->setAutoFillBackground(true); // 自动刷新背景
    	QPalette palette(this->palette());
    	palette.setColor(QPalette::Background, RGB(238, 238, 238));
    	this->setPalette(palette);
    }
    
    uicontentwnd::~uicontentwnd()
    {
    }
    
    展开全文
  • QT ui设计界面布局无法设置的问题

    千次阅读 2019-10-30 11:02:58
    widget无法设置布局,原因widget内部必须有子部件,否则直接设置的为顶层布局。如图1、2

    widget无法设置布局,原因widget内部必须有子部件,否则直接设置的为顶层布局。如图1、2

    展开全文
  • 该文件中包括了多种 UI 设计图标,可以在Qt 等界面实现工具中进行使用。
  • qt ui设计界面 创建信号与槽 原理,

    万次阅读 2016-09-04 13:29:11
    ui设计界面,设计信号和槽时,会把信息存在ui文件中,在编译时会在成成的头文件**.h 中把连接代码加上。 ui界面添加信号和槽有两种方法 第一种: 在界面选择操作对象-》右键-》转到槽-》选择信号-》qtCreator ...

    在ui设计界面,设计信号和槽时,会把信息存在ui文件中,在编译时会在成成的头文件**.h 中把连接代码加上。

    ui界面添加信号和槽有两种方法

    第一种: 在界面选择操作对象-》右键-》转到槽-》选择信号-》qtCreator 自动生成 槽方法-》编写槽方法。此方法在ui文件中并不会保存响应信号与槽信息,因为它生成的槽格式固定,如on_countBtn_clicked。在编译时加入QMetaObject::connectSlotsByName(MainWindow);方法就可以自动按照 方法名 映射为相应的connect。

    第二种 :在编辑界面下方


    此方法会在ui文件中生成 相应的connect 信息,在编译时,会在**.h头文件中加入

     connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea()));方法。
     
    
     
    
     
    
    以下为第一种方法原理说明

    查看Qt5的一些示例项目的时候,使用设计器打开其UI文件,在文件中竟然找不到signal和slot的连接。但是最终的程序,slot却又能准确的响应信号。打开通过ui文件自动生成的c++文件,其中也找不到connect语句,到底是怎么一回事?

      
      经过逐语句的分析。终于发现连接的原因就在于setUi函数的最后一句
      
      QMetaObject::connectSlotsByName(MainWindow);


      
       找到该静态函数
      
      
    void QMetaObject::connectSlotsByName(QObject *o)
      {
       if (!o)
       return;
       const QMetaObject *mo = o->metaObject();
       Q_ASSERT(mo);
       const QObjectList list = qFindChildren(o, QString());
       for (int i = 0; i < mo->methodCount(); ++i) {
      
      
       const char *slot = mo->method(i).signature();
       Q_ASSERT(slot);
      
      //以下一行用来判断slot的前三位是否是on_,如果不是,就跳过这个方法。
       if (slot[0] != 'o' || slot[1] != 'n' || slot[2] != '_')
       continue;
       bool foundIt = false;
      
      //遍历子对象。
       for(int j = 0; j < list.count(); ++j) {
       const QObject *co = list.at(j);
      
      //得到子对象名。
       QByteArray objName = co->objectName().toAscii();
       int len = objName.length();
      
      //要求slot跳过前3位(on_)后,接下来的子字符串和子对象名相同,并且接着该子字符串又是一个_
      
      //如果达不到这个要求,continue
       if (!len || qstrncmp(slot + 3, objName.data(), len) || slot[len+3] != '_')
       continue;
       const QMetaObject *smo = co->metaObject();
       int sigIndex = smo->indexOfMethod(slot + len + 4);
       if (sigIndex < 0) { // search for compatible signals
       int slotlen = qstrlen(slot + len + 4) - 1;
      
      //搜索该子对象所能引发的信号
       for (int k = 0; k < co->metaObject()->methodCount(); ++k) {
      //方法类型如果符合要求
      
       if (smo->method(k).methodType() != QMetaMethod::Signal)
       continue;
      
      //如果slot最后的子字符串和信号名相同
      
       if (!qstrncmp(smo->method(k).signature(), slot + len + 4, slotlen)) {
       sigIndex = k;
       break;
       }
       }
       }
       if (sigIndex < 0)
       continue;
      
      //连接操作
       if (QMetaObject::connect(co, sigIndex, o, i)) {
       foundIt = true;
       break;
       }
       }
      
      //连接成功
       if (foundIt) {
       // we found our slot, now skip all overloads
       while (mo->method(i + 1).attributes() & QMetaMethod::Cloned)
       ++i;
       }
      
      //连接失败
      
      else if (!(mo->method(i).attributes() & QMetaMethod::Cloned)) {
       qWarning("QMetaObject::connectSlotsByName: No matching signal for %s", slot);
       }
       }
      }


      
       得出此结论:自动生成的文件中,该函数总会存在setUi函数的最后一句。
      
      该函数的作用就是寻找setUi的唯一指针参数MainWindow所指向对象的成员函数,

      
      该成员函数的名字如果满足以下条件,就做连接操作。
      
      函数名规则:on_子对象名_信号名
      
      函数签名(即返回值与参数要符合slot要求)
      
      所以,我们可以这样做:在qt设计器中添加按纽或者菜单项或者按纽项后,不用在设计器中手动做连接操作。
      
      我们只要在主窗口类中添加符合条件的成员函数即可。
      
      函数名规则:on_子对象名_信号名
      
      函数签名(即返回值与参数要符合slot要求)
      
      例如:
      
      在设计器中添加一个菜单项,其对应的action为actionNew
      
      那么在主窗口类中添加以下的函数
      
      public slots:
      
       void on_actionNew_triggered();
      
      当切换这个菜单时,会自动执行上面的成员函数。
    展开全文
  • QT界面设计

    2018-09-06 13:28:13
    非常好的QT界面设计实例,便于做界面开发的参考与学习
  • QtUI设计:设置控件透明

    千次阅读 2016-05-27 11:07:39
    QT设置按钮控件透明:  代码: //设置按钮 背景 前景 this->ui->ShowCvRGB->setStyleSheet(QString("color:rgba(255,255,255,255);background-color:rgba(100,100,100,100)")); // 第一个 为前景色;第二个 ...
  • 窗口使用系统提供伸缩、自定义标题栏和可移动可以看另一篇文章 Qt UI设计之《自定义标题栏可移动拖拽窗口》 窗口分为两个控件:主窗口QWidget,标题栏QWidget 1 标题栏相关代码 #pragma once #include class ...
  • ui设计QT实例教程

    热门讨论 2009-10-24 00:22:52
    一本关于QT实例教程的书,一个个实例每条代码都解释,(当然前面有过解释的不重复再解释)适合初学者。强烈推荐给想了解QT的初学者。
  • QT入门学习之UI设计布局管理

    千次阅读 2019-03-18 17:12:15
    1. QT Designer 可视化UI设计及布局管理 创建一个Qidget Application项目demo2.在创建窗体时选择基类QDialog,生成的类命名为QWDialog,并选择生成窗体。这样生成的项目文件中就会自动生成qwdialog.ui文件、一个头...
  • 双击 .ui文件,会弹出UI设计器,其中的布局大概为: 其中UI界面的信号槽只能使用系统事件,不能使用自定义信号与槽。所以主要有用户代码来完成。 拖入一个 Push Button控件,对属性进行编辑,添加信号与槽 ...
  • QT学习】UI界面设计

    2020-05-10 16:57:29
    问题描述 使用按钮、label、文本输入控件、复选框、单选框实现界面设计。...3.在ui设计界面添加为实现功能的控件 4.将控件进行布局设置 5.单选框、复选框处理 6.为PushButton添加槽函数 实验结果 ...
  • Qt:可视化UI设计

    万次阅读 多人点赞 2018-08-10 14:17:09
    1、创建项目&...在界面设计时,对需要访问的组件修改其objectName,比如各个按钮,需要读取输入的编辑框,需要显示结果的标签等,以便在程序里区分。对于不需要程序访问的组件则无需修改其 obj...
  • 我在用QT做画板的时候想给MainWindows添加带有图片的工具栏,但是遇到了运行窗口图片显示不出来的问题,,但是我明明在UI界面添加了!!! 问题描述: 解决方案: 1.找到左侧的项目,然后点击取掉勾选Shadow build,...
  • qt菜单栏ui设计

    千次阅读 2019-09-27 08:18:34
    六、ui文件设计设计操作如下       6.1快捷键的设置      6.2动作函数的编写(槽函数)           到里面编写自己想要实现的动作就可以了     6.3效果如下 ...
  • Qt5.9.1 简单字体设计(UI设计

    千次阅读 2019-01-30 16:52:20
    最近自学了下Qt,本节讲一下如何进行些简单的字体设计,有什么问题互相交流。 步骤如下: 一:创建一个Widget Application项目samp1,在创建窗体时选择基类QDialog,生成的类命名为QWDialog,并选择生成窗体。 二:...
  • qt ui界面控件含义,布局设计

    千次阅读 2019-08-19 11:16:29
    1、布局控件简介: 水平布局,里面的控件将水平展示,布局器里面的控件大小若没有固定,其大小将随着布局的大小而自动拉伸。可以通过设置其左(layoutLeftMargin)、上(layoutTopMargin)、右...在Qt ...
  • QT入门之UI设计界面

    千次阅读 2017-11-06 22:11:07
    UI设计界面中,可以观察到属性编辑器实际上就是对派生类的各个成员数据进行赋值。因为QLineEdit继承自QWidget,QWidget又继承自QObject,所以可以看出属性编辑器其实就是分别对派生类对象中的各个基类子对象部分...
  • ui界面实现简单图形的绘制,在ui界面的widget控件提升为QChartView(png图片,代码截图)
  • QT多个ui界面设计

    千次阅读 2020-06-07 19:56:26
    在已有一个项目和ui的时候,右键Forms,在出来的的菜单中,点击Add New,弹出的界面选择Qt Designer From Class,如下所示。 单击choose后,弹出以下这个界面。前三个为对话框的设计,只是有按键的区别,第四个和第...
  • 利用qt设计界面,可以调用摄像头进行视频,同时可以存储数据
  • 本人使用的是在Ubuntu18.04 的 QT 5.9.5 1.在你存放工程的源文件处,新建一个文件夹例如 res 在res中放入你想输出的图片。 2.打开这个工程 点击工程的名字文件,右键 添加新文件 选则Resource File 3.之后选则路径...
  • 文章目录创建工程环境配置ui设计按钮显示图片(label)业务实现 本例以windows下的qt演示操作过程,再移植到虚拟机下运行 创建工程 环境配置 在pro文件中添加opencv库:LIBS和INCLUDEPATH 在weight.h中加: #...
  • 一个QTUI界面

    2018-04-17 15:08:49
    一个简单的QT工程的界面,C++语言编写,支持QT4.8.3编译
  • 基于Qtui图形化界面进行的界面设计

    万次阅读 多人点赞 2017-11-24 18:57:59
    qt初学者往往会发现这样的一个问题——无论是我买的相关的书,还是网上博客的内容,基本全都是利用纯代码的形式来进行界面设计的。而初学者对各种控件的代码实现并不熟悉,往往在这里耗费大量时间。故本篇文章介绍了...
  • Qt学习(一)ui界面的设计

    千次阅读 2019-08-20 21:35:00
    这几天初步接触了Qt,首先在学习QtUI界面的设计,发现Qt里面自带的那些控件与窗体显示效果都不太好,于是上网看了一些教程,也参考了一个demo界面,然后初步设计了一个ui界面。 大概的设计思路是先去掉MainWindow...
  • QT纯代码设计UI界面&Demo

    千次阅读 2020-05-18 17:39:59
    ②另一种就是纯代码设计UI,也就是不可视设计UI,这在中大型项目常见,优点是界面隐蔽性强。 无论那种方式,实际上都是转化为第二种的方式,只是第一种是QT已经帮忙处理了,处理成第二种纯代码的形式。 本文简析纯...
  • Qtui设计中拖的控件界面,编译运行后无法显示问题
  • QT UI美化 布局

    千次阅读 2015-06-02 13:40:50
    Qt::CustomizeWindowHint | Qt::WindowTitleHint 用法一: clientMainWindow::clientMainWindow(QWidget *parent) :  QMainWindow(parent, Qt::WindowCloseButtonHint) {  ... } 用法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,766
精华内容 10,306
关键字:

qtui设计