在QT中,如何让一个按钮点击一下换个功能,再点击又变回原来的功能

绿茶盖儿 2012-05-30 09:55:47
比如一个“修改”按钮,我点击一下,他就变成“保存”了
我知道有一种办法就是弄两个按钮重叠放置,一个“修改”按钮,一个“保存”按钮,点击其中一个,这个就隐藏,另一个就显示,
但是我在QT designer 里,怎么弄都没办法把两个按钮重叠在一起啊,该怎么解决啊
...全文
3686 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
g_xiaofei 2014-12-19
  • 打赏
  • 举报
回复 2
if (num) { ui.pushButton_ok->setText(tr("保存")); num = 0; } else { ui.pushButton_ok->setText(tr("修改")); num = 1; }
jdwx 2012-06-04
  • 打赏
  • 举报
回复
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
Q_OBJECT

public:
explicit Widget(QWidget *parent = 0);
~Widget();

private slots:
void on_pushButtonS_clicked();

void on_pushButtonM_clicked();

private:
Ui::Widget *ui;
};

#endif // WIDGET_H



#include "Widget.h"
#include "ui_Widget.h"

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
ui->pushButtonS->hide();
}

Widget::~Widget()
{
delete ui;
}

void Widget::on_pushButtonS_clicked()//保存按钮
{
ui->pushButtonM->show();
ui->pushButtonS->hide();
}

void Widget::on_pushButtonM_clicked()//修改按钮
{
ui->pushButtonM->hide();
ui->pushButtonS->show();
}
xiebin133 2012-06-04
  • 打赏
  • 举报
回复
不行。 那你这样永远只能显示保存,
if(!m_pushButton->isChecked())
{
m_pushButton->setText("保存");
}else
{
m_pushButton->setText("修改");
} 如果连接的是没有bool的信号,就这样写。
tomtc123 2012-06-04
  • 打赏
  • 举报
回复
这样行不?

bool flag = true;

if (flag)
pushbutton->setText(tr("保存"));
else
pushbutton->setText(tr("修改"));

flag = !flag;
xiebin133 2012-06-02
  • 打赏
  • 举报
回复
在new pushbutton的时候记得设置pushButton->setCheckable(true);默认为false
clicked(bool)信号, 连接一个槽 slot_button_clicked(bool flag); if(flag){pushbutton->setText("保存")}else{pushbutton->setText("修改")};
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

有什么的,简单,一个水平布局,从左到右放控件:两个按钮(修改,保存)、间隔器(弹簧)
初始状态,保存按钮hide()。
修改按钮槽:隐藏-修改按钮hide(),显示-保存按钮show()
保存按钮槽反向操作。
[/Quote]+1
暴龙神 2012-05-31
  • 打赏
  • 举报
回复
楼主真新!!
我是学友 2012-05-31
  • 打赏
  • 举报
回复
设一个bool就OK了,常见用途是键盘改变大小写
jdwx 2012-05-31
  • 打赏
  • 举报
回复
有什么的,简单,一个水平布局,从左到右放控件:两个按钮(修改,保存)、间隔器(弹簧)
初始状态,保存按钮hide()。
修改按钮槽:隐藏-修改按钮hide(),显示-保存按钮show()
保存按钮槽反向操作。



绿茶盖儿 2012-05-31
  • 打赏
  • 举报
回复
谢哦,不过怎么在代码里改变按钮的标题啊?
cxq52351484 2012-05-31
  • 打赏
  • 举报
回复
槽函数里面写成switch,两个case相互转变就可以,每个case是你的一个功能...
windywater119 2012-05-30
  • 打赏
  • 举报
回复
完全可以在用一个按钮啊,增加一个变量,在clicked()所连接的槽里,每点击一次就改变这个变量,然后改变按钮标题以及所做的事件处理。
  • 打赏
  • 举报
回复 1
点击之后在槽函数里把这个按钮的名称改成“保存”不就得了

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧