图文讲解:QT样式表StyleSheet的使用与加载。2、如上图所示,样式表可以用大括号限定作用的控件类型,比如QPushButton{ },如果不用大括号限定控件类型,那么该控件的所有子控件都会显示为父控件的样式,最典型的例子,使用容器类控件时,加载qss文件时,需要指定文件路径(一般是相对路径),如果把qss文件放在磁盘上,文件暴露在用户眼皮底下,可能会被用户随意修改,解决方法就是把qss文件作为资源,一起打包进exe文件中。
qt学习笔记(转)在新工程的cpp文件中加入 QLibrary myLib(“ClassDll.dll”);//加载dll文件 typedef void (*MyPrototype)(); MyPrototype myFunction = (MyPrototype) myLib.resolve(“ClassDll”);//CLASSDLL是函数名 if (myFunction) myFunction();//调用的classdll,也就是你的函数生成dll的文件: //mydll.h extern “C” __declspec(dllexport) int maxfun(int,int); //函数struct __declspec(dllexport) nNode //结构体{
Qt 原创 Qt调用默认程序打开文件 2013-01-19 23:28:24 需要调用系统的默认程序打开某文件,没有找到Qt的实现方法,只能调用Windows的API:ShellExecute。去工程目录相应的文件夹可以找到hlabelplug..类别:Qt|阅读(5201)|回复(6)|赞(3)阅读全文>> 原创 Qt笔记(5)重新搭建Qt开发环境 二 2012-07-02 12:36:46 上一章介绍是重新搭建Qt开发环境的详细步骤,这一章就对刚刚搭建好的开发环境进行相应设置,让它正常工作!
下面就是编码的操作了,我们需要在Dialog中声明一个信号,当用户点击OK时传递LineEdit中的内容到mainWindow中,具体的dialog.h代码为:2/6.其中的signals:void sendData(QString)便是我们需要的信号函数,同时声明了一个槽函数。而MainWindow中则需要声明接收的槽函数,注意槽函数参数只能与信号函数少或相等,而不能多于信号函数参数个数。9. connect(dlg,SIGNAL(sendData(QString)),this,SLOT(receiveData(QString)));
1、要记住ui文件的名字,因为uic生成的代码会存在ui_myform.h里2、要记住主窗体的object name, 因为ui文件提供的类名将以这个form的名字来命名3、要特别注意你的form选择的基类要和你代码中的窗体类兼容4、要记得给每个后面需要访问到的控件起一个有意义并且好记的object name, 因为ui文件提供的控件将以这些object name来命名。//myform.h#include "ui_myform.h"class MyForm: public QWidget, public Ui::BigWidget.
Qt Qtableview 的一些用法Qt Qtableview 的一些用法标签:Qt Qtableview<转>http://5449763.blog.51cto.com/5439763/1122514一些Qtableview的用法:一、Qtableview主要借助于QStandardItemModel类来使用,最后再把QStandardItemModel的对象set进去即可QTableView *tableview;QStandardItemModel *model = new QStandardItemModel();注:在进行表格设置时必须是“ui->tableView->setModel(model);”在前,属性具体设置在后,
谈.Net委托与线程——解决窗体假死 - 横竖都溢 - 博客园谈.Net委托与线程——解决窗体假死引言  在之前的《创建无阻塞的异步调用》中,已经介绍过异步调用的编写步骤和实施原理。● 由于Thread.Sleep(3000)是隔离在UI线程外的工作线程,因此这行代码带来的线程阻塞实际上阻塞了工作线程,不会给UI带来任何影响。正如传统的Delegate.BeginInvoke的异步工作线程取自于.NET线程池,Control.BeginInvoke的异步工作线程就是UI线程。
定时器:.NET框架类库中定时器类的比较。Timer Started @ 4:09:28 PM--> Timer Event 1 @ 4:09:29 PM on Thread:UIThread--> Timer EVENT 2 @ 4:09:30 PM on Thread: UIThread--> Timer Event 3 @ 4:09:31 PM on Thread: UIThreadSleeping for 5000 ms...--> Timer Event 4 @ 4:09:36 PM on Thread: UIThreadSystem.Windows.Forms.Timer Stopped @ 4:09:37 PM  例子程序设置System.Windows.Forms.Timer类的间隔属性为1000毫秒。
IconHelper::Instance()->SetIcon(ui->btnMenu_Close, QChar(0xf00d), 10);6 ui->btnMenu_Max->setToolTip("最大化"); 7 } else { 8 location = this->geometry(); 9 this->setGeometry(qApp->desktop()->availableGeometry());10 IconHelper::Instance()->SetIcon(ui->btnMenu_Max, QChar(0xf079), 10);11 ui->btnMenu_Max->setToolTip("还原");12 }13 max = !max;14 }15.
QTableWidget控件总结。学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研究人一样一样的),因为QTableWidget继承于类QTableView。1 //合并单元格的效果2 ui.qtablewidget->setSpan(2, 2, 3, 2);3 //第一个参数:要改变的单元格行数4 //第二个参数:要改变的单元格列数5 //第三个参数:需要合并的行数6 //第四个参数:需要合并的列数。1 QString strText = ui.qtablewidget->item(0, 0)->text();
Qt自定义控件。经过在Qt Creator安装目录下一番查找,发现D:\Qt\qtcreator-2.8.1\bin\plugins\designer这个目录下存在和D:\Qt\4.8.4\plugins\designer目录下同名的dll文件,于是我们猜测这个目录就是Qt Creator的控件安装目录,接下来拷贝loglateditplugin.dll到这个目录下,之后重新打开Qt Creator,发现自定义控件加载成功了,于是第一个问题解决了。
QWidget(1) 对widget的显示和隐藏QWidget *w = new QWidget(this);w->setHidden(true); //隐藏w->setHidden(false); //显示(2) 用QWidget实现弹出窗口的效果QWidget *w = new QWidget("test", this, "mySplashScreen", WStyle_Customize | WStyle_Tool );//WStyle_Splashw->setMinimumSize(100, 100);w->show();实际上,弹出窗口QDialog就是来源于QWidget,所以能用QLabel这样的类定义出窗口效果也就不奇怪了。
Qt4.5多国语界面动态切换的实现。3、使用lupdate工具提取翻译源文件, 命令是这样的 #lupdate ***.pro ,lupdate会解析***.pro即工程文件,生成TRANSLATIONS中的 ***.ts 几个文件,这些文件可以被linguist工具打开,按照提示一个一个的翻译成需要的文件,然后保存就OK,linguist的使用很简单,一看界面基本就会了。这段话明确的说明了,QTranslator在load以后,并没有把qm文件中的数据拷贝一份,而是在需要的时候去查询字符串。
Qt的Udp编程总结一:首先需在创建的工程目录下添加?QT +=network //引进网络编程内容?二:服务端的编写?(1)初始化操作? udpServer=new QUdpSocket(this); //创建套接字。udpServer->bind(QHostAddress::Any,8040);udpServer->readDatagram(datagram.#include "ui_widget.h"UdpServer::UdpServer(QWidget *parent) :ui(new Ui::Widget)UdpServer::~UdpServer()void UdpServer::recvData()Widget::Widget(QWidget *parent) :
Qt5+VS2015编程实例:下拉列表框QComboBox控件使用。主界面使用分割条控件分成了左右两部分,左边部分的第一个控件即为下拉列表框控件,其余控件为对其的常用操作设置,如初始化、清空列表项、插入项、删除项等操作,右边部分为一个文本框(QPlainTextEdit)控件,用以显示当前列表框包含的所有项及其它操作信息等。其中,在构造函数中完成槽函数的关联,代码如下图所示:
并且其结构不符合面向对象的思想,2012-04-13问题一:在QString中使用arg()成员函数解决方式: QString s = QString("%1 %2...").arg("").arg("")....;arg中的内容自动和%1、%2按照顺序对应。如: QString str = "a cloudy day"; str.remove(2, 6); //结果为a day 从const char *转换为QString的方式为:QString str += "(const char *)";或是使用加上QString的强制转换,或者调用fromAscii()或fromLatin1()。
qt 接口(转)#include // 编码头文件QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030")); // 窗口里面可以接收或写中文文字// 这个和上面那个是等级的 QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb18030"));QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030")); // 窗口部件里(如button)可以中文显示。case QMessageBox::Yes:ui->label->setText("Yes");
Qt实现多线程下的信号与槽通讯。#include "qobject.h"class DayouTraderSpi : public QObject,public CThostFtdcTraderSpi{//宏必须申明 Q_OBJECTpublic: DayouTraderSpi(CThostFtdcTraderApi* api) :pUserApi(api){}; ~DayouTraderSpi();signals://自定义的信号 void signal_add_int(QString); };connect(dayouTraderSpi, SIGNAL(signal_add_int(QString)), this, SLOT(set_lineEdit_text(QString)), Qt::QueuedConnection);
Qt 创建自定义部件并集成在 Qt Designer中 Qt 创建自定义部件并集成在 Qt Designer中。2010-09-08 13:23:54| 分类: Qt C++ | 标签:qt designer 控件 iconeditor 自定义控件 |字号大中小 订阅 把自定义控件集成到Qt Designer中要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在。Qt Designer调运函数createWidget()创建控件实例,指定父控件。
重新实现事件处理函数(Reimplementing Event Handlers)在Qt中,一个事件是QEvent的子类的对象。下面是实现文件:#include #include "ticker.h"Ticker::Ticker(QWidget *parent) : QWidget(parent){ offset = 0; myTimerId = 0;}在构造函数中,设置offset为0,这个变量是文本要显示的x坐标值。定时器事件的优先级很低,如果需要多个定时器,那么跟踪每一个定时器的ID是很费时的。
QT中线程调用GUI主线程控件的问题转:http://blog.sina.com.cn/s/blog_4ba5b45e0102e8i4.htmlQT中线程调用GUI主线程控件的问题。它们仅用于主线程。实践上,不会在别的线程中使用GUI类,它们工作在主线程上,把一些耗时的操作放入独立的工作线程中,当工作线程运行完成,把 结果在主线程所拥有的屏幕上显示。好了,上面的是说为什么不行的,那如果非要在非GUI线程里操作GUI线程里的控件,该怎么做呢?
PythonGUI设计:利用Qt Designer设计一个对话框在Qt编程中,程序员通常都是使用手动编写Python源代码来进行Qt程序开发,但有些程序员也喜欢使用可视化的方法进行对话框设计,因此,Qt为习惯利用可视化方式进行窗口程序设计的程序员提供了Designer,它可以给一个应用程序提供全部或者部分对话框。用Qt Designer设计的对话框和用Python写代码写成的对话框是一样的,可以用作一个常用的工具,并不对编辑产生影响。
确切说应该比较的是QT和MFC两个界面库。但是从库本身来说QT集成的功能较MFC庞大,而且使用的封装技术信号和槽也是比较受到赞许的,比如QT Script为QT提供嵌入式脚本,QT界面库支持CSS,所以QT做出来的界面比MFC要好,而且比较容易,MFC就需要借助第三方库了。3.应用范围,现在windows的普及范围谁能比过,所以MFC的客户量比较多,QT主要是Linux下的开发人员在使用,但MFC也只是得益于windows(感觉又是一次捆绑战略)
QString s1 = "汉语";QString s2("漢語");QString s3 = tr("中文")QString s4 = QStringLiteral("中文");//只要字符串不需要翻译,请关注这个QString s5 = QString::fromWCharArray(L"中文");QString s6 = u8"中文";//C++11QString s7 = tr(u8"中文")...QString s1 = "汉语";QString s2("漢語");QString s6 = u8"中文";//C++11...QString s1 = "汉语";QString s2("漢語");QString s3 = tr("中文")QString s6 = u8"中文";//C++11...
Qt项目界面文件(.ui)及其作用(超详细)Qt 项目中,后缀为“.ui”的文件是可视化设计的窗体的定义文件,如 widget.ui。下面是 widget.h 文件的内容:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); ~Widget();private: Ui::Widget *ui;};#endif // WIDGET_Hwidget.h 文件有几个重要的部分。
2,窗体位置初始化问题:MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){理论为:在Qt中每个widget窗口都维持着自己的一个创建栈(widget''''''''s stack.),栈里边存放的是该窗口所有子widget窗口的标识符(代表其各个子widget)。当创建一个子widget后,系统便会将将代表其的标识符压入其父widget的创建栈中。此时对于这种既有item,又有Qwidget的情况,该如何定义彼此之间的前后位置呢?
QT开发(六)——QT容器组件。QT中有九种容器组件,分别是组合框QGroupBox、滚动区QScrollArea、工具箱QToolBox、选项卡QTabWidget、控件栈QWidgetStack、框架QFrame、组件QWidget、MDI窗口显示区QMdiArea、停靠窗口QDockWidget。设置控件widget为QScrollArea组件的子控件。QWidget类是所有用户界面对象的基类,QWidget组件在创建时是不可见的,可以包含子控件,在删除Widget时,子控件也一起删除。QWidget组件属性设置选项:
1.更改窗体标题this->setWindowTitle(''窗体标题'');“窗体标题”就是更改的窗体标题。这时候窗体图标就已经准备好了,下面开始编写代码,在mainwindows.cpp文件中 this->setWindowTitle(''calculator''); //设置窗体标题 this->setMaximumSize(300,400); //窗体最大尺寸 this->setMinimumSize(300,400); //窗体最小尺寸 this->setWindowIcon(QIcon('':/new/prefix1/icon'')); //窗体图标。
Timer的创建线程是UI线程,而执行线程是TheardPool中的线程,所以不会假死,但调试的时候会报错,因为非控件的创建线程不能操作控件。Timer Thread_Time;在《CLR Via C#》中讲多线程时有提到这3个计时器,但作者说System.Timers.Timer是对System.Threading.Timer的报装,不推荐使用,但是在我的WEB项目中的Application_Start中我还是使用的这个而不是Threading.Timer,因为使用Threading.Timer时只执行了一次就不在执行了。
×

¥.00

微信或支付宝扫码支付:

开通即同意《个图VIP服务协议》

全部>>