‘壹’ qt界面显示内容相同
问题描述:
QT中使用ui设计时设计出的界面显示后效果不一致
(如果ui界面所在类继承于QWidget似乎显示正常,但是如果继承的是其它自定义类可能出现显示不一致的问题拦冲耐,在网上找到说使用窗体布局(form)可以解决,但试过没效果)
问题解决
可以先尝试更换父类,如果无法更换父类似乎只能硬改了,直到达到想要的效果
1.控件尺寸不一致:简春如果界面尺寸已经固定(ui->setFixedSize(xx,xx)),在ui设计界面更改最小值最小值就行,使得最大最小值一致
2.GroupBox标题显示(ui设计时标题居左但显示时标题未居左显示):构造函数加上ui->GroupBox->setStyleSheet(“QGroupBox::title {subcontrol-position: top left;}”);
3.控件边距过大或过小:ui->gridLayout_3->setSpacing(0);(gridLayout_3为窗口总体布局)或者在ui设计界面总体设置各个部件布局与间隔
qt
QT creator的ui界面和实际运行出来的界面不一致判态
8469阅读·7评论·4点赞
‘贰’ 求Qt Creator 界面的源代码
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<枝培class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>516</width>伏搭皮
<height>330</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>90</x>
<y>40</y>
<width>111</width>
<height>51</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
<widget class="QComboBox" name="comboBox">
<property name="geometry">
<rect>
<x>90</x>
<y>120</y>
<width>121</width>
<height>31</height>
</rect>缺差
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>90</x>
<y>180</y>
<width>101</width>
<height>27</height>
</rect>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>516</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
‘叁’ Qt如何设置界面风格
设置方法:
每个widget都可以设置风格
setStyle(QStyle style)
对QApplication设置QStyle即对所有
QApplication::setStyle(QStyleFactory::create("Fusion"));
其他widget如过没有被设置QStyle,默认使用QApplication的
QStyle主要可重写接口
绘制复杂控件
virtual void drawComplexControl(ComplexControl control, const QStyleOptionComplex * option, QPainter * painter, const QWidget * widget = 0) const = 0
绘制一般控件
virtual void drawControl(ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const = 0
绘制最基础的控件(小箭头什么的)
virtual void drawPrimitive(PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const = 0
所有这些接口的参数都类似
第一个为QStyle类中定义的枚举值,晌大大具体参考Qt文档,表示你要修改的控件类型
后面几个顾名思义好了
获得当前平台支持的原有的QStyle
自定义QStyle
可以重写已有的QStyle稍微修改下
也可以继承一个,一般继承于QProxyStyle,或者QCommonStyle
将自定义的style做成宴竖插件供其他人使用
Qt style sheet qss的使用
使用.qss 文件
如果一个Qt style sheet被激活,则它会对widget的style进行封装
这是一个类似css的东西
子widget也会被修改
可以对整个app应用一个样式,然后对某个控件指定某个样式
这是一个优先级别最高的样式配置,会覆盖QStyle,或者说包装QStyle
QStyle和qss的区别
QStyle是可以重写画控件的,你可以重新设置画刷画线,当然也你可以只是设置背景颜色。例如,checkbox,原来是打钩的,现在改成深色
qss 改的相对表面一点,修改背景颜色 背景图片什么的
一个改骨头一个改皮
可在QtDesigner里更改样式表
‘肆’ 在linux上使用qt进行界面开发时如何引用xwindow的
先创建一个QWidget对象。
1、在Qt程序中创建一个QWidget对象,并调用其show()函档键数以显激枯示窗口。
2、调用QWidget对象明蠢洞的winId()函数获取窗口句柄(即窗口ID号)。
3、使用XOpenDisplay()函数打开与XServer的连接。
4、使用XCreateSimpleWindow()函数创建一个XWindow,并设置其属性和事件响应函数等。
5、使用XMapWindow()函数将新创建的窗口映射到屏幕上。
6、使用XFlush()函数刷新缓冲区并发送请求给XServer。
‘伍’ qt的unicode宏定义在哪
Qt是一个跨平台的C++图形用户界面(GUI)库。Qt提供了一个统一的编码方案,即Unicode编码。Unicode编码是虚差局一种跨平台的字符编码方案,它可以表示世界上所有的文字。Qt在源代码中提供了一个宏定义,即UNICODE宏,用于指定程序使用的编码方式。如果在编译时定义了UNICODE宏,那么程序将使用Unicode编码方式来进行编码,如果没有定义,那么程序将庆尘使用平台默认的编码方式。通常来说,UNICODE宏定义位于Qt的头文件中,例如qglobal.h文件。您可以通过查看该差让文件来了解具体的定义方式。
‘陆’ qt5.5怎么设置显示左侧源码头文件列表
qt5.5怎么设置显示左侧源码头文件列表
这个是mainwindow.ui的创建文件来的,mainwindow.ui界面上的都是 ui_mainwindow.h在控制的,在项目里是不显示这个头文件的,这个不用打开啊,你想用mainwindow.ui界面的控件,那你直接包含:ui_mainwindow.h就可以了。
直接原因是,你的模晌好型中可能使用了中文字符。有些情况下,模型中的确没有直接使用到中文字符,但如果Windows用户名是中文的,宴培铅由于保存模中物型文件时会自动保存版本信息(例如谁创建、谁最后修改),也会导致模型中加入了中文字符。
‘柒’ 怎么让qt背景覆盖全部界面
关于怎么让qt背景覆盖全部界面相关资料如下
1.Qss 的setStyleSheet设圆清旁置背景图片
1.1background-image设置平铺或者居中
这种方法设置的要点是要将图片添加到qrc文件中,形成资源路径,然后在QT界面编辑或者程序代码中通过设置路径来实现背景图片设置。图片大小不能自适应控件大小。只能可以实现平正雀铺或者居中显示。background-position:center;设置显示位置,background-repeat:no-repeat;设置是否平铺;
(1)平铺重复显示
QWidget#widgetWinPic
{
background-image:url(:/FaceMatch/Resources/pic/viewbackin.png);
background-repeat:repeat;
}
或者代码中ui.widgetWinPic.setStyleSheet("QPushButton{ background-image: url(:/FaceMatch/Resources/pic/viewbackin.png);background-repeat:repeat;");
(2)居中不重复设置
QWidget#widgetWinPic
{
background-image:url(:/FaceMatch/Resources/pic/viewbackin.png);
background-position:center;
background-repeat:no-repeat;
}
或者代码中 ui.widgetWinPic.setStyleSheet("QPushButton{ background-image: url(:/FaceMatch/Resources/pic/viewbackin.png);background-position:center;background-repeat:no-repeat;");
1.2 border-image设置按照控件大小缩放填充整个控件
图片被拉伸填满整个橘橡控件,可以实现缩放拉伸填充。会跟着控件的大小变化进行缩放,下图左侧是正常尺寸,右侧是放大后的样子