qt中控件的使用函数
1、Text Edit编辑框
//将编辑框中的内容转化成Utf8编码
ui->textEdit->toPlainText().toUtf8();
2、Combo Box下拉框的应用
(1)将内容加入下拉框中
ui->comboBox->addItem(ui->recvMulAddrEdit->text());
(2)删除下拉框中当前的内容
ui->comboBox->removeItem(ui->recvMulAddr->currentIndex());
3、List Wiget
(1)实现双击
void QPlayer::on_listWidget_doubleClicked(const QModelIndex &index)//双击进入
{
//"mplayer -slave -quiet -geometry x:y -zoom -x x -y y move.mp4"
//http://192.168.1.248/move.mp4
QString movepath = path+ui->listWidget->currentItem()->text(); //ui->listWidget->currentItem()->text() 取出当前光标双击的一行内容 QString cmd = QString("mplayer -slave -quiet -geometry %1:%2 -zoom -x %3 -y %4 %5")
.arg(QString::number(ui->label->x()))
.arg(QString::number(ui->label->y()))
.arg(QString::number(ui->label->width()))
.arg(QString::number(ui->label->height()))
.arg(movepath); if(mProcess->state() == QProcess::Running)
{
mProcess->kill();
mProcess->waitForFinished();
}else
{
mProcess->start(cmd);
} }
(2)获取当前点击内容的行号
int num = ui->listWidget->row(ui->listWidget->currentItem());
(3)建立文件缩小图标
QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName());
ui->ListWidget->addItem(item); //往List Wiget里面添加项
(4)在List Widget列表中显示其他窗口信息
Form *win = new Form(ui->listWidget); //这是一个子窗口,ui->listWidget把窗口对象放进ListWidget列表中
QListWidgetItem *item = new QListWidgetItem();
item->setSizeHint(win->size()); //每项的大小设置为win的大小
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item,win); //
4、Label
(1)显示图片
第一种方法:
ui->label->setScaledContents(true);//显示图片的全部
ui->label->setPixmap(QPixmap(tempDir));//显示图片,tempDir是照片的绝对路径
第二种方法:
QPixmap mmp;
mmp.load("E:/GZ17-3/system/Qt-program/001/code/LoginWin/tst.png");
mmp = mmp.scaled(ui->label->size());
ui->label->setPixmap(mmp);
(2)播放视频,播放器是mplaer
void ProcessMplayer::on_listWidget_doubleClicked(const QModelIndex &index) //双击播放视频
{
qDebug()<<ui->listWidget->currentItem()->text();
QString cmd = "E:/GZ17-3/system/Qt-program/mplayer/mplayer.exe";
//cmd.append(ui->listWidget->currentItem()->text()); QStringList argmList;
argmList<<"-slave"; //从模式--通过命令控制
argmList<<"-quiet"; //屏蔽解码信息输出
argmList<<"-wid";//嵌入到界面上,后面接窗口ID
argmList<<QString::number(ui->label->winId());
argmList<<ui->listWidget->currentItem()->text(); if(mProcess->state() == QProcess::Running)
{
mProcess->kill();
mProcess->waitForFinished();
}
mProcess->start(cmd, argmList);
}
(3)播放gif动态图
QMovie *movie = new QMovie("../form/1.gif"); // "../form/1.gif"图片路径
movie->start(); //开始播放动态图
ui->label->setMovie(movie); //将图片设置为为动态
ui->label->setScaledContents(true); //尽可能完整的播放整张动图 ,此处要设置为true
(4)截屏
//截屏
QPixmap map = QApplication::screens().at()->grabWindow();
map.save("./screen.png"); //保存到当前目录下,名字为screen.png
QBuffer buffer; //图片暂时存储器
buffer.open(QIODevice::WriteOnly);
map.save(&buffer);
buffer.data();//得到QByteArray 对象可以转换为char* //显示
map = map.scaled(ui->label->size()); //图片跟着屏幕的缩放
ui->label->setPixmap(map);
5、Check Box按键
ui->checkBox->setCheckState(Qt::Unchecked); //把按钮重新置于没有被选中的状态
6、Push Button按键
(1)排列出一个键盘
//键盘数组
QToolButton *buttons[];
//按钮初始化
buttons[] = ui->btn_value0;
buttons[] = ui->btn_value1;
buttons[] = ui->btn_value2;
buttons[] = ui->btn_value3;
buttons[] = ui->btn_value4;
buttons[] = ui->btn_value5;
buttons[] = ui->btn_value6;
buttons[] = ui->btn_value7;
buttons[] = ui->btn_value8;
buttons[] = ui->btn_value9;
buttons[] = ui->btn_Point;
buttons[] = ui->btn_delete; //所有按钮信号关联一个槽函数
for(int i=;i<;i++)
{
connect(buttons[i],SIGNAL(clicked(bool)),this,SLOT(clicked_button()));
} //点击哪个按钮
void ArmInfo::clicked_button()
{
//获取是哪个按钮点击(信号发送者)
QToolButton *obj = (QToolButton*)sender();
QString ip = ui->lineEdit_Amend->text();
if(obj->text() == "<-") //检测是否点击删除按钮
{
ip.remove(ip.length()-,);//删除最后一个字符
} else
{
ip.append(obj->text());//拼接字符串
}
ui->lineEdit_Amend->setText(ip);
}
(2)设置按钮状态
ui->pushButton->setCheckable(true); //按一次就改变一次状态,比如说第一次按下时true那么第二次就是false
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(check(bool)));
(3)按钮按下和释放时切换图片
void MainWindow::on_pushButton_pressed() //按下按钮时
{
ui->pushButton->setStyleSheet("border-image: url(:/new/prefix1/imag/人体炮弹.png);");
} void MainWindow::on_pushButton_released() //释放按钮时
{
ui->pushButton->setStyleSheet("border-image: url(:/new/prefix1/imag/atm.png);");
}
7、Line Edit输入框
//垂直布局管理器
QVBoxLayout *vbox = new QVBoxLayout(this);
lineEdit = new QLineEdit(this); //定义一个lineEdit对象
lineEdit->setMinimumHeight(); //设置最小高度
lineEdit->setAlignment(Qt::AlignRight); //设置输入框中右边对齐
8、toolButton
(1)设置按钮的大小
//90为x轴,100为y轴,300为宽,400为高设置界面的大小
ui->toolButton->setGeometry(,,,);
(2)设置图标
//设置图标,../toolbar/icon.jpg 这是图片所在路径,要在源程序目录下
ui->toolButton->setIcon(QIcon("../toolbar/icon.jpg"));
解释:toolbar代码的路径,不是绝对路径
9、action按钮绑定方法
connect(ui->action_New,SIGNAL(triggered(bool)),this,SLOT(doProcessNew())); //action按钮的绑定方法,这里和pushButton不同的时候触发为triggered(bool)
10、锁定背景图片,不让其他按钮随着背景图片一起变化
MainWindow{border-image: url(:/new/prefix1/imag/00958PICfNK.jpg);}
解释:MainWindow :显示背景的窗口名
border-image:图片跟着边框一起变化
/new/prefix1/imag/00958PICfNK.jpg:图片路径
qt中控件的使用函数的更多相关文章
- Cocos2dx 把 glview 渲染到 Qt 控件上(Mac 环境)
本文原链接:http://www.cnblogs.com/zouzf/p/4423256.html 环境:Mac 10.9.2 Xcode5.1.1 Qt5.3 cocos2dx-2.2.4 ...
- duilib中控件拖拽功能的实现方法(附源码)
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41144283 duilib库中原本没有显示的对控件增加拖拽的功能,而实际 ...
- Android Design Support Library 中控件的使用简单介绍(一)
Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...
- 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
[VS开发]VS2010 MFC中控件.对话框等背景颜色动态修改的方法 标签(空格分隔):[VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明: ...
- MFC编程入门之九(对话框:为控件添加消息处理函数)
这一节讲的主要内容是如何为控件添加消息处理函数. MFC为对话框和控件定义了诸多消息,我们对他们操作时会触发消息,这些消息最终由消息处理函数处理,比如我们点击按钮时就会产生BN_CLICKED消息,修 ...
- C#中控件数组的讨论
VB用得习惯后,到C#中来觉得很奇怪,如此好的控件数组怎么不见了.“众所周知,控件数组最主要的两个优点:可以循环附值:可以响应同一个事件.从而大大简化了代码.引自http://wenku.baidu. ...
- WPF 中获取DataGrid 模板列中控件的对像
WPF 中获取DataGrid 模板列中控件的对像 #region 当前选定行的TextBox获得焦点 /// <summary> /// 当前选定行的TextBox获得焦点 /// &l ...
- Metro中控件WebView访问外部的网页显示一片空白
Metro中控件WebView访问外部的网页显示一片空白 解决方案: 下载安装了Initex.Software.Proxifier.v3.21.Standard.Edition.Incl.Keyma ...
- form表单中控件较多,加载完成后切换页面都很慢的解决方法
form表单中控件较多,加载完成后点击都很慢,为什么?我一页面中form表单里面上百个控件(如input.select.radio.checkbox等),还有一些js脚本,加载速度还可以,都能全部显示 ...
随机推荐
- Caused by:org.hibernate.DuplicateMappingException:Duplicate class/entity/ mapping
1.错误描述 java.lang.ExceptionInInitializerError Caused by:org.hibernate.InvalidMappingException:Could n ...
- Tornado模块
Tornado 一个轻量级的Web框架 简介 1.Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得其成为一个拥有非常高性能的框架.此外,它还拥有处理安全性.用户验证.社 ...
- java实现在线支付
国内电子商务系统实现的基本流程如下: 客户在系统内下订单 -> 系统根据订单生成支付宝接口url -> 客户通过url使用支付宝(网上银行)付款 -> 支付宝将客户的付款完成信息发送 ...
- jquery中的下拉框
1.1select获取选中的value值 <label for="select"> <select id="key_RedemptionMode&quo ...
- Windows DLL资料整理
1.使用Visual C++ 6.0创建dll 2. 函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal) 要点: 1. 如果你的程序中没有涉及可变参数,最好使 ...
- 主流nosql数据库对比
目前开源的NOSQL数据库有,Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Ri ...
- .class, class.forName(), getClass()的区别
类名.class叫做"类字面量",因class是关键字, 所以类名.class编译时确定. getclass()运行时根据实际实例确定,getClass()是动态而且是final的 ...
- win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
之前的系统没有这个问题,就是win10有这个问题,过一段时间就会出现这个问题,网上找了很多,最后发现是显卡驱动的问题,是A卡的问题,只需要更新A卡驱动即可,如果更新A卡驱动不行的话,或者说A卡驱动已经 ...
- 如何为开发项目编写规范的README文件(windows),此文详解
为什么要写这篇博客? 其实我是一个入坑已经半年的程序员,因为不是计算机专业,只能自己摸索,所以我深知博客的重要性.每次我的学习笔记啊,项目的,面试题啊,有的,只要有时间,我肯定上传上来,一方面自己可以 ...
- Sql中根据旧表创建新表的SQL语句
今天在网上查了下,根据旧表创建新表的SQL语句,网上给了两个答案 create table tab_new like tab_old (使用旧表创建新表) create table tab_new a ...