开发者

Qt中控件的函数使用教程分享

目录
  • 1、Text Edit编辑框
  • 2、Combo Box下拉框的应用
  • 3、List Wiget
    • 3.1、实现双击
    • 3.2、获取当前点击内容的行号
    • 3.3、建立文件缩小图标
    • 3.4、在List Widget列表中显示其他窗口信息
  • 4、Label
    • 4.1、显示图片
    • 4.2、播放视频,播放器是mplaer
    • 4.3、播放gif动态图
    • 4.4、截屏
    • 4.5、Check Box按键
    • 4.6、Push Button按键
    • 4.7、Line Edit输入框
    • 4.8、toolButton
    • 4.9、action按钮绑定方法
    • 4.10、锁定背景图片,不让其他按钮随编程客栈着背景图片一起变化

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

3.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);
    }
 
}

3.2、获取当前点击内容的行号

int num = ui->listWidget->row(ui->listWidget->currentItem()); 

3.3、建立文件缩小图标

QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName());
ui->ListWidget->addItem(item); //往List Wiget里面添加项

3.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

4.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);

4.2、播放视频,播放器是mplaer

void ProcessMplayer::on_listWidget_doubleClicked(const QModelIndex &index) //双击播放视频
{
    qDebug()<<ui->listWidget->currentItem()->text();
    QString cm开发者_JS学习d = "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);
}

4.3、播放gif动态图

 QMovie *movie = new QMovie("../form/1.gif");  // "../form/1.gif"图片路径
 movie->start(); //开始播放动态图
 ui->label->setMovie(movie); //将图片设置为为动态
 ui->label->setScaledContents(true); //尽可能完整的播放整张动图 ,此处要设置为true

4.4、截屏

//截屏
QPixmap map = QApplication::screens().at(0)->grabWindow(0);
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);

4.5、Check Box按键

ui->checkBox->setCheckState(Qt::Unchecked); //把按钮重新置于没有被选中的状态

4.6、Push Button按键

(1)排列出一个键盘

  //键盘数组
    QToolButton *buttons[12];
  //按钮初始化
    buttons[0] = ui->btn_value0;
    buttons[1] = ui->btn_value1;
    buttons[2] = ui->btn_value2;
    buttons[3] = ui->btn_value3;
    buttons[4] = ui->btn_value4;
    buttons[5] = ui->btn_value5;
    buttons[6] = ui->btn_value6;
    buttons[7] = ui->btn_value7;
    buttons[8] = ui->btn_value8;
    buttons[9] = ui->btn_value9;
    buttons[10] = ui->btn_Point;
    buttons[11] = ui->btn_delete;
 
 //所有按钮信号关联一个槽函数
    for(int i=0;i<12;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(objavascriptj->text() == "<-") //检测是否点击删除按钮
    {
      ip.remove(ip.length()-1,1);//删除最后一个字符
    }
 
    else
    {
       ip.append(obj->text());//拼接字符串
    }
    ui->lineEdit_Amend->setText(ip);
}

(2)设置按钮状态

ui->pushButton->setCheckable(true); //按一次就改变一次状态,比如说第一次按下时true那么第二次就是false
connect(ui->pushButton,SIGNAL(clicked(bandroidool)),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);");
}

4.7、Line Edit输入框

 //垂直布局管理器
 QvboxLayout *vbox = new QVBoxLayout(this);
 lineEdit = new QLineEdit(this); //定义一个lineEdit对象
 lineEdit->setMinimumHeight(60); //设置最小高度
 lineEdit->setAlignment(Qt::AlignRight); //设置输入框中右边对齐 

4.8、toolButton

(1)设置按钮的大小

//90为x轴,100为y轴,300为宽,400为高设置界面的大小
ui->toolButton->setGeometry(90,100,300,400); 

(2)设置图标

 //设置图标,../toolbar/icon.jpg 这是图片所在路径,要在源程序目录下
 ui->toolButton->setIcon(QIcon("../toolbar/icon.jpg"));

解释:toolbar代码的路径,不是绝对路径 

4.9、action按钮绑定方法

connect(ui->action_New,SIGNAL(triggered(bool)),this,SLOT(doProcessNew())); //action按钮的绑定方法,这里和pushButton不同的时候触发为triggered(bool)

4.10、锁定背景图片,不让其他按钮随着背景图片一起变化

MainWindow{border-image: url(:/new/prefix1/imag/00958PICfNK.jpg);}

解释:

  • MaipythonnWindow :显示背景的窗口名
  • border-image:图片跟着边框一起变化
  • /new/prefix1/imag/00958PICfNK.jpg:图片路径

到此这篇关于Qt中控件的函数使用教程分享的文章就介绍到这了,更多相关Qt控件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜