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脚本,加载速度还可以,都能全部显示 ...
随机推荐
- xml字符串转为XmlDocument
string xml = "<xml><logistics_express_get_respose><express_detail><company ...
- javaWeb学习之Listener监听
] 一.监听器Listener javaEE包括13门规范 在课程中主要学习 servlet技术 和 jsp技术 其中 servlet规范包括三个技术点:servlet listener filt ...
- angular路由操作中'#'字符的解决办法
var app=angular.module("myapp",["ngRoute"]);app.controller("ctr",funct ...
- PHPExcel的使用
1.当然是下载PHPexcel的插件了 http://phpexcel.codeplex.com/ 2.应用插件 我把插件和需要用到的excel模板放的是不同文件夹的,excel我放在publi ...
- C#异常处理--C#基础
try...catch:捕获异常try...finally:清除异常try..catch...finily:处理所有异常 1.捕获异常 using System; using System.Colle ...
- 一个TokenUtils程序,亲测可用
1. Token用途 token是HTTP请求的令牌,通俗一点说是凭证,目的是防止api被随意访问获取信息. 可使用随机数生成,也可以使用用户id.密码或时间之类进行排序或者加密进行声称. token ...
- 【BZOJ3143】游走(高斯消元,数学期望)
[BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...
- [BZOJ4872][六省联考2017]分手是祝愿
BZOJ Luogu sol 首先发现肯定有解,又因为每个位置至多操作一次,所以最优解一定是在\([0,n]\)之间 有一种可以在\(O(\sum_{i=1}^{n}\lfloor\frac{n}{i ...
- FFT/NTT 总结
本总结主要用于帮助个人理解,讲得不足之处,还请各位看官谅解 FFT 补充知识 \(n\)次单位复根(\(w_n\)): 使得\(z^n=1\)的一类复数,这些复数一共有\(n\)个,它们都分布在复平面 ...
- iOS开发--XMPPFramework--框架的导入(二)
创了一个XMPP即时通讯交流群140147825,欢迎大家来交流~我们是一起写代码的弟兄~ xmpp协议开发即时通讯,最常用的就是XMPPFramework. 第一种方法,是直接拖进项目 1.可以下载 ...