读书频道 > 网站 > 网页设计 > Linux环境下Qt4图形界面与MySQL编程
3.3.10 示例4:ButtonBox的应用
12-11-05    奋斗的小年轻
收藏    我要投稿   
在Linux操作系统环境下,图形界面与数据库编程技术越来越受到广泛重视。本书以图形界面编程控件与数据库编程基础→简单易学的实例→实际工程项目开发与场景分析为写作主线,以当前最新的Qt4.7为依据,采...立即去当当网订购

按钮盒(ButtonBox)可以很方便地快速布置一组按钮。它有水平和垂直两种样式。可以用以下函数创建水平或垂直按钮盒。下面通过示例来看看ButtonBox的用法。

首先建立标准的Qt Gui Application项目,把项目自动生成的toolBar、menuBar和statusBar删除,设计界面如图3-29所示。

1.控件说明

在属性编辑窗口中对控件的属性进行修改,修改内容如表3-6所示。


 

2.示例说明

在buttonBox中添加PushButton与“OK”按钮组成按钮组,名称是Clear,按钮功能说明如下:

?在lineEdit输入框中输入字符串内容,单击按钮组buttonBox中的“OK”按钮,lineEdit中的内容添加到textEdit中;

?单击按钮组buttonBox中的“Clear”按钮,清空textEdit中的所有内容。

3.示例实现

本示例通过添加自定义的“Clear”按钮,方便大家全面地掌握ButtonBox的用法。

头文件mainwindow.h(文中的粗体为需要添加的内容):
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QAbstractButton>
#include <QPushButton>
namespace Ui {
 class MainWindow;
}
class MainWindow : public QMainWindow
{
 Q_OBJECT
public:
 explicit MainWindow(QWidget *parent = 0);
 ~MainWindow();
private:
 Ui::MainWindow *ui;
private:
 QPushButton *Clear;
private slots:
 void on_buttonBox_clicked(QAbstractButton *button);
};
#endif // MAINWINDOW_H

注意此处的槽函数是通过右击控件→Go to slots自动生成的,所以不用在实现文件中添加映射函数。

在主窗体mainwindow.cpp文件中自动生成如下代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
 QMainWindow(parent),
 ui(new Ui::MainWindow)
{
 ui->setupUi(this);
}
MainWindow::~MainWindow()
{
 delete ui;
}

在主窗体mainwindow.cpp文件中构造函数:
/***构造函数***/
MainWindow::MainWindow(QWidget *parent) :
 QMainWindow(parent),
 ui(new Ui::MainWindow)
{
 ui->setupUi(this);
 Clear = new QPushButton;               //new QPushButton
 Clear->setText("Clear");//设置Clear的Text
 ui->buttonBox->addButton(Clear,QDialogButtonBox::ActionRole);
}

在主窗体mainwindow.cpp文件中添加槽函数on_buttonBox_clicked(QAbstractButton*button):

/***槽函数:处理buttonBox中的单击按钮事件***/
void MainWindow::on_buttonBox_clicked(QAbstractButton*button)
{
 QString str;
 str = ui->textEdit->toPlainText();
 if(button == ui->buttonBox->button(QDialogButtonBox::Ok))
 {
  if(!ui->lineEdit->text().isEmpty())
  {
    str += ui->lineEdit->text()+"\n";
    ui->textEdit->setPlainText(str);       //更新textEdit
  }
 }
 else if(button == this->Clear)
 {
  ui->textEdit->setPlainText("");//清空textEdit
 }
}

主文件main.cpp不需任何更改,使用工程自动生成的即可。

4.示例执行结果

示例执行结果如图3-30所示。


 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站