QT中button的问题
在QT中在一个框中,有很多Button,当点击一个按键Button,系统从哪个函数可以直接找到这个键啊,帮帮忙QButtonGroup*bg;QPushButton*bt...
在QT中在一个框中,有很多Button,当点击一个按键Button,系统从哪个函数可以直接找到这个键啊,帮帮忙
QButtonGroup *bg;
QPushButton *btn[90];
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
bg = new QButtonGroup;//按钮组
connect(bg,SIGNAL(buttonClicked(int)),this,SLOT(allButtonPointSlot(int)));
int i;
for(i = 0;i < 90;i++){ //初始化所有button,并增加到button group里,实现多按钮共享一个槽函数的功能
btn[i] = new QPushButton;
btn[i]->setMaximumSize(5,5);//按钮大小
//btn[i]->setMinimumSize(2,2);
btn[i]->setFlat(true);
bg->addButton(btn[i],i);//添加按钮到按钮组
}
}
void MainWindow::allButtonPointSlot(int i)
{
this->ui->btn[i]->setText(QApplication::translate("MainWindow", "qt", 0, QApplication::UnicodeUTF8));
}
MainWindow::~MainWindow()
{
delete ui;
}
这样在Window.cpp中怎么实现不了啊?
我现在使实现的是三十个按钮,所以不能都这样啊 展开
QButtonGroup *bg;
QPushButton *btn[90];
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
bg = new QButtonGroup;//按钮组
connect(bg,SIGNAL(buttonClicked(int)),this,SLOT(allButtonPointSlot(int)));
int i;
for(i = 0;i < 90;i++){ //初始化所有button,并增加到button group里,实现多按钮共享一个槽函数的功能
btn[i] = new QPushButton;
btn[i]->setMaximumSize(5,5);//按钮大小
//btn[i]->setMinimumSize(2,2);
btn[i]->setFlat(true);
bg->addButton(btn[i],i);//添加按钮到按钮组
}
}
void MainWindow::allButtonPointSlot(int i)
{
this->ui->btn[i]->setText(QApplication::translate("MainWindow", "qt", 0, QApplication::UnicodeUTF8));
}
MainWindow::~MainWindow()
{
delete ui;
}
这样在Window.cpp中怎么实现不了啊?
我现在使实现的是三十个按钮,所以不能都这样啊 展开
4个回答
推荐于2016-02-13
展开全部
bg = new QButtonGroup;//按钮组
connect(bg,SIGNAL(buttonClicked(int)),this,SLOT(allButtonPointSlot(int)));
for(i = 0;i < 90;i++){ //初始化所有button,并增加到button group里,实现多按钮共享一个槽函数的功能
btn[i] = new MyButton;
btn[i]->setMaximumSize(BtnW,BtnH);//按钮大小
btn[i]->setMinimumSize(BtnW,BtnH);
btn[i]->setFlat(true);
bg->addButton(btn[i],i);//添加按钮到按钮组
}
connect(bg,SIGNAL(buttonClicked(int)),this,SLOT(allButtonPointSlot(int)));
for(i = 0;i < 90;i++){ //初始化所有button,并增加到button group里,实现多按钮共享一个槽函数的功能
btn[i] = new MyButton;
btn[i]->setMaximumSize(BtnW,BtnH);//按钮大小
btn[i]->setMinimumSize(BtnW,BtnH);
btn[i]->setFlat(true);
bg->addButton(btn[i],i);//添加按钮到按钮组
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每一个控件都有一个object的名字,和一个标题。
当一个控件生成时,qt就自动create了一个该类的对象,对象名就是object name 当你触发这个控件时 也就qt就会找到这个控件的objct name 来确定是动作。
显示一个不同的名字???在说清楚点啊,如果你是要点击一个按钮然后调用out(QPushiButton *)输出该按钮的名称,然后再点击其他按钮同样调用out(QPushiButton *)输出名字的话那就好办了。
当一个控件生成时,qt就自动create了一个该类的对象,对象名就是object name 当你触发这个控件时 也就qt就会找到这个控件的objct name 来确定是动作。
显示一个不同的名字???在说清楚点啊,如果你是要点击一个按钮然后调用out(QPushiButton *)输出该按钮的名称,然后再点击其他按钮同样调用out(QPushiButton *)输出名字的话那就好办了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
手动写solt和signal,然后调用不同的函数就可以了
比如Button1,Button2,构造里面写
connect(Button1,SIGNAL(clicked()),this,SOLT(fun1()));
connect(Button2,SIGNAL(clicked()),this,SOLT(fun2()));
就可以知道你点的是哪个按钮了。
建议改成控件数组试试,不用QButtonGroup.
比如Button1,Button2,构造里面写
connect(Button1,SIGNAL(clicked()),this,SOLT(fun1()));
connect(Button2,SIGNAL(clicked()),this,SOLT(fun2()));
就可以知道你点的是哪个按钮了。
建议改成控件数组试试,不用QButtonGroup.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找个应该是按钮事件触发的吧,找那个事件代码就行了,Button都是以事件的形式操作的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询