QT中PushButton绑定到槽时不能触发槽函数

牛奶味的榴莲 2018-01-31 11:17:23
小弟最近从VC转行QT处于学习阶段,但是一个小小的槽就把我折腾死了,希望各位大大指点一下。

头文件
#ifndef RBG_LOG_TOOLS_H
#define RBG_LOG_TOOLS_H

#include <QtWidgets/QMainWindow>
#include "ui_rbg_log_tools.h"

#include <QPushButton>
#include <QMouseEvent>
#include <QLineEdit>
#include <QLabel>
class RBG_LOG_TOOLS : public QMainWindow
{
Q_OBJECT

public:
RBG_LOG_TOOLS(QWidget *parent = 0);
~RBG_LOG_TOOLS();

private:
Ui::RBG_LOG_TOOLSClass ui;

public:

QPushButton *pButtonStart;
QPushButton *pButtonStop;

QLabel *plabel;

public:

void mouseReleaseEvent(QMouseEvent *e);


void on_button_start( );

};

#endif // RBG_LOG_TOOLS_H


CPP文件

#include "rbg_log_tools.h"

#include <QTextCodec>
#include <QMessageBox>
RBG_LOG_TOOLS::RBG_LOG_TOOLS(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); // 改为GBK编码
QString strMessage = QString::fromLocal8Bit("RBG日志下载工具");

this->setWindowTitle(strMessage);
this->setMaximumSize(400, 300);
this->setMinimumSize(400, 300);

int iWindWidth = this->width( );
int iwindHeigh = this->height( );

int iButtonSatrtX;
int iButtonSatrtY;

int iButtonStopX;
int iButtonStopY;

pButtonStart = new QPushButton(QString::fromLocal8Bit("开始"), this);
pButtonStart->move( iWindWidth/4, (iwindHeigh*8)/10);
pButtonStart->show( );


pButtonStop = new QPushButton( QString::fromLocal8Bit("关闭"), this);
pButtonStop->move( iWindWidth/2, (iwindHeigh*8)/10);


plabel = new QLabel( QString::fromLocal8Bit("我是 QLabel"), this);
plabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
plabel->setAlignment(Qt::AlignBottom | Qt::AlignVCenter);
plabel->setGeometry(QRect(iWindWidth/6, iwindHeigh/10, (iWindWidth*4)/6, iWindWidth/10));

//两次的绑定都不生效
connect( plabel, SIGNAL(clicked()), this, SLOT(on_button_start()));
connect( pButtonStop, SIGNAL(clicked()), this, SLOT(quit()));
}

RBG_LOG_TOOLS::~RBG_LOG_TOOLS()
{

}

//这个槽函数无法触发
void RBG_LOG_TOOLS::on_button_start( )
{

QMessageBox::warning(this, QString("test"), QString("Hello"), QMessageBox::Yes, QMessageBox::Ignore );

}

void RBG_LOG_TOOLS::mouseReleaseEvent(QMouseEvent *e)
{


}
...全文
1103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛奶味的榴莲 2018-01-31
  • 打赏
  • 举报
回复
引用 1 楼 WHUTztb 的回复:
声明的时候没把它声明为槽函数,当然连不上了。public slots:
非常感谢,问题解决。学艺不精,谢谢指点
WHUTztb 2018-01-31
  • 打赏
  • 举报
回复
声明的时候没把它声明为槽函数,当然连不上了。public slots:

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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