您的位置:首页 > 编程语言 > Qt开发

qt+vs[基础控件介绍一]

2015-11-27 10:12 411 查看
通过对我们实验室的项目中qt的使用,来介绍qt的相关知识。首先从界面里的控件开始讲起。1.让vs显示代码的行号:基于上面的问题,我们可以做这样的设置:点击菜单栏的"工具"-->"选项",弹出选项窗体-->标上选项窗体左下方的"显示所有设置"-->选择左方的"文本编辑器"-->选中"所有语言"-->把右方显示下"行号打上对勾",点击"确定"即可。2.源文件,头文件的树形结构view->solution explorer就可以显示这是我写的工程页面,现在从上到下介绍控件,在后面的文章中,会继续更新槽函数等内容。1.窗口的工具栏可以用QToolBar 加入,也可以用designer来做,我是在designer上设计的,通过下面的语句在代码中进行引用。
<span style="font-size:18px;">ui->setupUi(this);
ui->actionNew</span>
2.窗体部分,QDockWidget、QSplitter、布局控件QBoxLayout 等控件及其相应属性。左边是一个树形结构用来显示文件,右面一个主窗口显示和一个显示list的photos窗口,在bottom位置放一个status窗口。
<span style="font-size:18px;">      ui->setupUi(this);
setWindowState(Qt::WindowMaximized);//这是初始窗口最大化
<span style="font-size:18px;">       /*******显示汉字********/QTextCodec *codec = QTextCodec::codecForName("GB2312");QTextCodec::setCodecForLocale(codec);QTextCodec::setCodecForCStrings(codec);QTextCodec::setCodecForTr(codec); </span>
左右各有一个窗体,里面需要分成两个可拉伸的部分,这里使用Qsplitter,对于两个部分,我们使用函数setStretchFactor()来实现比例
<span style="font-size:18px;">splitterM->setStretchFactor(splitterM->indexOf(topTabWidget),1);</span>
<span style="font-size:18px;"></span>
我使用了QDockWidget来做一个子窗口,这个窗口很好用,可以嵌套在其他的widget中,也可以把其它控件放在里面。做子窗口的嵌套很好用,在网上查了很久也发现有人用这个控件,真是很奇怪。QDockWidget继承自QWidget,所以setMinimumHieght、addWidget等属性都有
<span style="font-size:18px;">最后QMainWindow里面用addDockWidget(位置,控件名)。</span>
<span style="font-size:18px;"></span>
<span style="font-size:18px;">我重写了QTreeView和QList.自定义的部分在后续介绍</span>
线程的使用 QThread1.QThread 有自己的信号机制,而QThreadpool是没有的。继承QThread 然后实现run()方法,就可以使用多线程2.我使用多线程来加载图片,在线程里,使用opencv来读入内存,并用QImage来获得缩略图。图片张数较多,数据量大,需要对同时开的线程总量做限制可以使用信号量QSemphore,网上或者API 上都有很多,生产者、消费者的使用方法。我只有一种性质的线程,使用
QSemphore(10);QSemphore.acquire();//线程开始,消耗一个QSemphore.release();//线程结束,释放一个
就可以控制了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: