
Qt
文章平均质量分 68
jirryzhang
。
展开
-
Qt中将Layout设为centralWidget的方法(让窗口里面的部件随窗口大小变化而变化的方法)
很简单,在Qtdesigner中对象查看器里选中名为centarlWidget部件,然后在工具栏中点击想要的layout,即可将centralWidget转换为对应的布局Layout,这样,在这个layout里面的部件即可随着整个窗口(Widget)的大小变化而变化。原创 2016-12-06 20:49:03 · 14543 阅读 · 2 评论 -
QWidget不显示的问题
有时候实例化了一个继承自QWidget的对象,调用show()函数,发现这个Widget并没有显示,这是为什么呢?其中一种可能就是,这个Widget指定了一个父Widget,且这个父Widget应用了layout,这会导致这个子Widget不显示。如果不指定Widget的父Widget,则可以发现这个Widget可以显示了。原创 2017-03-24 18:58:03 · 11445 阅读 · 3 评论 -
QList的一些用法
QList是一种表示链表的模板类。QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedList和QVector提供的操作极其相似:*对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API是基于迭代器的原创 2017-04-06 14:58:35 · 17862 阅读 · 1 评论 -
CreateThread的用法及在Qt等GUI开发中使用CreateThread的一些技巧
Qt中有自己的多线程工具QThread,但是每次都需要继承QThread实现一个自己的类,然后重载其中的run()成员函数,工作量比较大。有的时候只需要执行一个运行时间长的函数来更新GUI及后台的一些数据,如果直接写在GUI更新所在的主线程中,就会容易导致线程假死。因此,对于运行时间比较长的代码,我们需要创建新的线程来执行它们。使用QThread是一种方法,另外一种,对于Windows平台下的开发原创 2017-04-06 15:14:34 · 5351 阅读 · 4 评论 -
由opencv with qt的imshow源码的一部分联想到在arm上实现highgui
这几天一直在折腾给arm a9的开发板移植opencv,但是移植无法使用highgui部分。索性直接看源码,自己实现这部分界面显示的功能。结果看到了一些熟悉的东西,如下:void DefaultViewPort::updateImage(const CvArr* arr){ CV_Assert(arr); CvMat* mat, stub; int origin =原创 2017-05-30 19:29:53 · 1770 阅读 · 2 评论 -
QT和MFC面试题
1、QT信号槽机制的优缺点 1)QT信号槽机制的引用精简了程序员的代码量 2)QT的信号可以对应多个槽(但他们的调用顺序随机),也可以多个槽映射一个信号 3)QT的信号槽的建立和解除绑定十分自由 4)信号槽同真正的回调函数比起来时间的耗损还是很大的,所有在嵌入式实时系统中应当慎用 5)信号槽的参数限定很多例如不能携带模板类参数,不能出现宏定义等等2、(1) 描述过程,原创 2017-06-12 16:41:14 · 3711 阅读 · 0 评论 -
Robomasters大神符模拟程序
由于没钱做个真正的大神符道具,所以写了一个可在电脑上更新大符图像的小程序,方便队伍测试大符射击功能。敬请期待...原创 2017-07-20 18:51:36 · 2373 阅读 · 5 评论 -
Qt获取某文件夹下的文件数目
如下:path=QFileDialog::getExistingDirectory(NULL, tr("选择文件夹"),"D:\\",QFileDialog::ShowDirsOnly);QDir *dir=new QDir(path);QStringList filter;//filter<<"*.dat";//dir->setNameFilters(filter);QList原创 2017-03-24 13:40:13 · 6405 阅读 · 3 评论 -
QCustomPlot的legend图例背景透明的方法
只需要使用QCPLegend的setBrush函数,设置QColor(r,g,b,0)。其中r,g,b为背景色的R,G,B的数值,第四个形参为透明度,设置为0即可使得背景透明。如下:ui.customPlot->legend->setBrush(QColor(255,255,255,0));//legend背景色设为白色但背景透明,允许图像在legend区域可见原创 2017-10-11 23:00:08 · 7918 阅读 · 0 评论 -
RBF_PID_Qt&plot
头文件//testrbfplot.h#ifndef TESTRBFPLOT_H#define TESTRBFPLOT_H#include #include "ui_testrbfplot.h"#include #include #include #include #include using namespace std; class te原创 2017-10-11 22:57:27 · 488 阅读 · 1 评论 -
QPushButton的一些stylesheet设置
如下:QPushButton{background-color: transparent;color: rgb(255, 255, 255);border-radius:10px;border:1px solid white;}QPushButton:hover{color: rgb(71, 186, 204); background-color: rgb(221, 221, 2原创 2017-10-16 13:33:04 · 4401 阅读 · 0 评论 -
QTabWidget样式设置
QTabWidget::pane{ border: 1px; background:transparent;}QTabWidget::tab-bar{ background:transparent; subcontrol-position:center;}QTabBar::tab{min-width:75px;min-height:55px;background:t原创 2017-10-25 19:20:43 · 14917 阅读 · 2 评论 -
qtstylesheet 渐变
#iconWidget{background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 rgb(11,30,37), stop: 1.0 rgb(22,63,83));}#iconWidget *{background:transparent;}原创 2017-10-26 15:22:56 · 888 阅读 · 0 评论 -
Qt使用Windows蓝牙API搜索蓝牙设备并建立串口服务的方法
如何使用windows蓝牙api搜索蓝牙设备可参考我的另外一篇文章原创 2017-04-07 20:32:37 · 24648 阅读 · 19 评论 -
Qt动态分配内存的内存回收规则
在Qt的程序中经常会看到只有new而不delete的情况,其实是因为Qt有一套回收内存的机制,主要的规则如下:1.所有继承自QObject类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被delete的时候delete的,所以如果一个程序中,所有的QObject类都指定了父亲,那么他们是会一级级的在最上面的父亲清理时被清理,而不用自己清理;2.程序通常最上层会有一个根的QOb原创 2017-03-04 23:04:04 · 3307 阅读 · 0 评论 -
重启qt程序的方法
通过在widget中调用qApp-exit()函数传递一个特定的退出码,在main()函数中判断qapplication的返回状态,然后启动程序即可。//mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include static const int EXIT_CODE_REBOOT = -1234567原创 2017-02-25 10:36:38 · 3182 阅读 · 0 评论 -
Qt phonon视频播放控件
这两天给公司做一个项目,需要再界面里加一段视频播放,研究使用qt 的phonon库来实现。源码如下:#include #include #include #include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); econ w; w.setWindowTitle("Video P原创 2016-12-17 23:35:50 · 2331 阅读 · 0 评论 -
VS2010使用qt翻译的方法
选择菜单"Qt"-“Create new Translation File”,选“中文简体中国”,确定,此时解决方案资源管理器会多一项Translation Files,里面有*.ts文件,右键菜单选择lupdate,再选择菜单“Qt”-"Launch Linguist",在Qt Linguist中翻译后,保存,回到VS,右键*.ts,选择Irelease,即得*.qm文件。在qrc文件中添加这个原创 2017-01-15 22:01:27 · 2888 阅读 · 0 评论 -
pyqt4使用qt designer设计的ui文件的方法(将ui文件转换为python源码和类的方法)
在pyqt4的文件夹里搜索找到pyuic.py这个脚本,然后将其复制到ui文件所在的文件夹(其实也可以不这么做,我是为了方便而这么做)。在配置好python环境的命令行窗口中转到ui所在的文件夹,输入命令python pyuic.py test.ui -o testUi.py其中test.ui为你要用的ui文件,testUi.py为ui文件被转换输出的python源码,里面会有Ui_tes原创 2017-02-10 12:29:48 · 8704 阅读 · 0 评论 -
包含中文字符的QString对象转换为python的string对象的方法
最近做的一个项目中,用pyqt4做一个界面,需要用lineEdit控件接收用户的中文输入,以查找或者修改数据。由于python2对中文支持不是太好,所以一开始出现了很多问题。经过多番尝试,后来终于解决了,方法如下:我用lineEdit.text()获取lineEdit控件里的字符串,该对象为QString对象,为了方便和python其他模块交互,我需要将其转换为python支持的string对原创 2017-02-10 12:44:40 · 2514 阅读 · 0 评论 -
python qt(pyqt)的文件打开、文件保存、文件夹选择对话框
首先导入pyqt4模块:import PyQt4.QtCore,PyQt4.QtGui获取文件路径对话框:file_name = QFileDialog.getOpenFileName(self,"open file dialog","C:\Users\Administrator\Desktop","Txt files(*.txt)") ##"open file Dia原创 2017-03-01 12:35:30 · 40860 阅读 · 3 评论 -
qt连接信号与槽的问题报错的原因
有一个A类对象的指针a,A有信号signalA()和槽函数slotA(),连接这对信号与槽一般用如下语句:connect(a,SIGNAL(signalA()),this,SLOT(slotA()));但是若a指向的对象没有实例化,该语句会报错。因此在连接信号与槽时,应该确保发送者和接收者都已经实例化,以免报错!原创 2017-03-01 16:55:13 · 3227 阅读 · 0 评论 -
Visual studio打不开Qt资源文件qrc的解决办法(无法使用Qt的qrc编辑器)
Qt的qrc(资源文件)文件默认是用qt资源编辑器打开的,这个编辑器程序是qrceditor.exe。当VS无法用这个编辑器查看qrc文件时,在vs工程解决方案中右键单击qrc文件,选择(打开方式...),在弹出的界面中点击(添加...),找到Qt-VS-Add-in插件的安装目录,假设($Qt4VSAddin)是你安装的Qt vs插件的位置,在弹出的添加打开方式对话框中填入程序名称:($原创 2017-03-03 12:42:52 · 9738 阅读 · 0 评论 -
Qt添加自定义控件并在qtDesigner中使用以及链接失败的解决方法
开发环境:VS2010+Qt4.8.6+Qt_Vs_Add_In首先用VS新建一个项目,项目类型选择Qt4 Designer Plugin,然后按照普通的Qt项目一样写好代码或者设计Ui文件,随后生成解决方案。该项目和普通Qt应用唯一的区别就是不会生成exe程序,而是生成动态链接库dll和lib。随后,将生成的dll和lib文件复制到QtDir\plugins\designer下,再打开Q原创 2017-03-03 14:08:39 · 4858 阅读 · 0 评论 -
Qt给父widget加上styleSheet(添加背景图)而不改变子widget的styleSheet的方法
比如用stylesheet给widget加背景图,可以用qt designer修改ui文件相应widget的stylesheet,在里面添加border-image: url(你的图片路径)。比如我的图片路径为“:/patacTest/test.jpg”,则在stylesheet编辑框中添加如下一行border-image: url(:/patacTest/test.jpg);这样就给widg原创 2017-02-24 13:57:37 · 3903 阅读 · 1 评论 -
qt响应键盘事件
Qt键盘事件属于Qt事件系统,所以事件系统中所有规则对按键事件都有效。下面关注点在按键特有的部分:focus一个拥有焦点(focus)的QWidget才可以接受键盘事件。有输入焦点的窗口是活动窗口或活动窗口子窗口或子子窗口等。焦点移动的方式有以下几种:按下Tab或Shift+Tab注意:文本编译器(一般需要插入Tab),或者WebView(需要Tab来移原创 2017-02-24 14:07:34 · 24987 阅读 · 4 评论 -
Qt ScrollArea不出现滚动条及滚动条失效的解决办法以及所有控件保持最小尺寸而不再缩小的方法
设置ScrollArea控件的minimumSize属性,当ScrollArea尺寸缩小到这个尺寸时,将会自动出现滚动条。其次要使滚动条生效,还得确保部件所放置的Widget被设置成了ScrollArea的Widget(通过ScrollArea的成员函数setWidget()设置),或者将需要放置在ScrollArea里的控件放在了qt designer中ScrollArea自带的QWidget中原创 2017-03-03 16:43:57 · 5854 阅读 · 0 评论 -
QString转换为const char*(QFileDialog得到的QString文件路径(含中文)转换为fstream可用的const char*文件路径)以及解决Qt中文字符串乱码的一种思路
对于不含中文的文件路径,可用如下代码解决:QString path=QFileDialog::getOpenFileName(this,QObject::tr("set filepath")); char* ch; QByteArray ba =path.toLatin1(); ch=ba.data(); ofstream test; test.open(ch); test原创 2017-03-08 10:57:01 · 2407 阅读 · 1 评论 -
pyqt自定义信号与槽
如下:from PyQt5 import QtWidgets, QtCorefrom qtTeUi import Ui_Formimport timeclass MyWindow(QtWidgets.QWidget, Ui_Form): _signal = QtCore.pyqtSignal(str) # 定义信号,定义参数为str类型 def __init__(原创 2017-12-23 18:44:59 · 2310 阅读 · 0 评论