qt中自定义槽函数怎么调用该类中的控件指针 5C

就是想把lineEdit里面的值在slider里面显示,
就是在我自定义的槽函数里面调用了构造函数中的控件指针,结果显示的是野指针,请问我应该怎么改
部分代码如下:

//widget.h
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
    QSlider *slider;
    QLineEdit *edit;
public slots:
    void ChangeValue();

};


//widget.cpp  控件的布局什么的,还定义了一个定时器,定时触发槽函数
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    QLineEdit *edit = new QLineEdit("25");
    QSlider *slider = new QSlider(Qt::Vertical);
    slider->setRange(0,100);
    slider->setValue(0);
    slider->setTickPosition(QSlider::TicksLeft);

    QLabel *label = new QLabel("0");

    QHBoxLayout *cLayout = new QHBoxLayout;
    cLayout->addWidget(label,0,Qt::AlignRight);
    cLayout->addWidget(slider,0,Qt::AlignLeft);

    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addWidget(edit);
    mainLayout->addLayout(cLayout);
    setLayout(mainLayout);

    slider->setFocus();

    QTimer *timer1 = new QTimer();
    timer1->setInterval(500);
    timer1->start();

    connect(slider,SIGNAL(valueChanged(int)),label,SLOT(setNum(int)));
    connect(timer1,SIGNAL(timeout()),this,SLOT(ChangeValue()));
} 
Widget::~Widget(){}
void Widget::ChangeValue(){
    QString s = edit->text();
    int value = s.toInt();
    slider->setValue(value);
}

2个回答

你构造函数里有问题,slider已经是你的成员变量了,

下面这样写是不对的
 QSlider *slider = new QSlider(Qt::Vertical);

应该是:
slider = new QSlider(Qt::Vertical);

你的edit成员变量同理

成员变量 slider, edit没问题吧,槽函数里可以直接访问这两个指针啊。倒是构造函数里那个timer1得仔细看看是不是可以。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt自定义槽函数
实例代码 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QPushButton> class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget(); ...
QT自定义槽函数报错
在一个widget中定义槽 错误:undefined reference to `Widget::setname(QString)'rn源代码如下rnnamespace Ui rnclass Widget;rnrnrnclass Widget : public QWidgetrnrn Q_OBJECTrn rnpublic:rn explicit Widget(QWidget *parent = 0);rn ~Widget();rn rnprivate slots:rn void setname(QString s);rnprivate:rn Ui::Widget *ui;rn;rnrn#endif // WIDGET_Hrn
qt在槽函数中调用QMessageBox的问题
qt在槽函数中调用QMessageBox后,终端一直出现如下警告,请问是怎么回事呢?rnQWSLock::up(): Invalid argumentrnQWSLock::down(): Invalid argumentrnQWSLock::up(): Invalid argumentrnQWSLock::down(): Invalid argumentrnQWSLock::down(): Invalid argumentrn……rn……rn就这样一直出现,我的是嵌入式linux,在桌面版则不会出现这种情况。rn我查了下网上说出现这种情况多半是qtapp调用另外的进程,但是我在调用系统进程进行校时的时候也没有出现这个问题啊,却在QMessageBox这里出现了,有哪位大侠了解这种情况吗?如何避免出现这种情况呢?麻烦指点一下,多谢。。。
qt槽函数被自动调用
组合框添加项时,会自动调用改变项槽函数,如果使用改变项槽函数应注意函数执行是否有影响。
Qt怎么在mainWindow中调用自定义的类中的函数?
[size=18px]需要在用Qt做好的菜单中点击载入后在中央控件中载入图像,显示图形的cpp文件在另一个自定义类中,用bool类型在自定义的cpp文件中能控制图像的显示与隐藏,将其新建对象并引用放入mainWindow文件中就无法控制显示和隐藏,Qt中应该怎么在mainWindow中调用其它自定义类中的函数?[/size]
Qt 带自定义数据结构参数的槽函数连接失败
描述 如果信号名字,函数名字都对,连接函数都对,参数类型都对,参数个数也合法的情况下,还是连接失败。 当你在一个以后槽函数添加一个新的结构体参数时,槽函数连接失败了,往往就是如下问题。 你没有向系统声明这个结构体类型,系统不认这个,故而不响应。 代码 自定义结构体定义后加上 Q_DECLARE_METATYPE(Type) typedef struct struCustom...
Qt 自定义槽函数,两个窗口切换
Qt是一个跨平台C++图形用户界面应用程序开发框架。该博客主要介绍窗口和界面、以及槽函数的使用。新建一个Qt工程,注意在Details这一项时将基类选择为Qwidget,这时候将会自动生成widget.h,widget.cpp 以及main.cpp三个文件。因为是要实现二个窗口的切换,所以需要在新建一个类,右击项目文件添加类文件 取名为subwidget.h 这时候项目栏将出现5个文件,首先在主函...
QT自定义槽函数有什么约定?
我在.h的private slots下面添加一行定义,居然报错。有什么约定吗?rnprivate slots:rn void on_pushButton_clicked();rn void on_pushButton_2_clicked();rn void on_pushButton_3_clicked();rn void on_treeView_doubleClicked(const QModelIndex &index);rn [color=#FF0000] void xyz(); //:-1: error: collect2: error: ld returned 1 exit status[/color]rn
qt按钮事件的Open槽函数中调用python函数
一 环境准备 和Python语法快速入门rn二 Python CTypes访问C/C++动态链接库rn三 Python源码跨平台的编译rn四 Python的C/C++扩展库_模块、函数、类扩展rn五 Python的多线程GIL及在web中调用ffmpeg扩展示例rn六 Python虚拟机定制-使用c++调用pythonrn七 基于python_qt_ffmpeg的视频播放项目示例
【Qt】槽函数中获取发出信号的对象
核心:QObject::sender() 对于信号与槽的连接 connect( obj1 , SIGNAL(sigFun()) , obj2 , SLOT(slotFun()) ) 或者 connect( obj1 , &Object1::sigFun , obj2 , &Object2::slotFun ) 可以通过信号与槽函数的参数来传递数据 但是存在一些情况,我们希望能在
QT中信号连接不上槽函数
void Widget::on_RegistpushButton_clicked() { registW = new registwidget; registW->show(); } 我当时是在一个按键槽函数里创建了窗口对象 在窗口里发送信号在另一个窗口中connect连接槽函数 结果发现怎么都连接不上 花了很长时间查找 所以将该问题记录下 发送信号 void r...
qt中,槽函数有哪些使用方法?
方法1:可以通过信号去调用相应的槽函数rnrn但是如果没有事件发生,也想去调用槽函数该如何去实现呢?rn谢谢!
QT中多个按钮响应同一个槽函数
1.新建7个按钮,前四个按钮分别添加图标和文字,这四个按钮代表供拍照选择的四中状态,上拉三角按钮用来显示和隐藏四种状态按钮,当点击四种状态中的任一种状态按钮时,下面的图标按钮就显示那种状态的图标,并且这四种状态按钮隐藏,此时,点击拍照按钮,就拍下最后被选中的状态 .h文件中的代码如下: #ifndef MYMENU_H #define MYMENU_H #include #in
Qt中在槽函数中获取QListWidget中的各个部件
QWidget* pwig = NULL;     QPushButton* pbtn = NULL;     QListWidgetItem* pwidgetItem = NULL;     InstallModulesPresenter* pPresenter = NULL;     QListWidget *list=NULL;     QPoint pnt = QCursor::
qt槽函数里调用QMainWindow.show()不显示
本人刚学习qt,想实现Widget窗口上设置一个button,按下button弹出mainwindow窗口,可是操作过程中发现按下button后无反应,代码如下:rnvoid Widget::on_pushButton_clicked()rn rn myMainWindow maj(this);rn maj.show();rn qWarning("hello");rnrnrn然后实验按下button后显示对话框,看行不行,发现对话框和mainwindow都显示出来了,代码如下,但是屏蔽掉dlg.exec(),不让对话框现实,mainwindow也不会显示,rnvoid Widget::on_pushButton_clicked()rn rn myMainWindow maj(this);rn maj.show();rn myDialog dlg(this);rn dlg.exec();rn qWarning("hello");rnrn请大神们指点
Qt中控件指针的delete问题
我在Qt的主窗口中定义了QAction控件的指针,但是在程序中没有任何调用,然后在主窗口的析构函数中delete这个控件,发现每次在调用主窗口的析构函数时都在“退出代码:”后显示一串无规律数字,而正常情况下应该为0。这是为什么?
Qt中的指针列表
下面的这个例子显示了指针列表。就是有一个QList,它的每个元素是个指针。包括分配内存,释放内存等操作。如下所示#ifndef POINTSET_H #define POINTSET_H #include <QList> #include <QPointF> #include <QDebug> //点集 class PointSet { public: ...
Qt 子窗口上控件的槽函数不响应
遇到的问题:父窗口控件的槽函数正常响应,子窗口控件的槽函数无响应,想要实现的界面如下: 其中子窗口是嵌在父窗口的widget中的。点击pushButton1时,该按钮的槽函数正常响应;点击pushbutton2,按钮的槽函数没有正常响应。 解决方法:原来子界面中按钮的槽函数是在Qt designer中通过右击转到clicked()的方式来实现的,需要改成用connect手动绑定信号和槽函数,形如:
怎样在自定义的函数中调用 某一控件的指针?
extern void DrawArc( TCanvas* Owner, TLPoint Center, TLPoint Begin, TLPoint End);rn此函数参数列表中的 TCanvas* 是我在函数中要用到的,包含了以下头文件:rnrn#include rn#include rn#include rn#include rn#include rn#include rn#include rnrn即一个Form 的头文件里包含的我都包含了,但是还是提示出错:rnrn[C++ Error] Values.h(37): E2451 Undefined symbol 'TCanvas'rnrn请问,我需要包含什么头文件??rn还是该怎么写此函数??此函数重要用到 Canvas->Arc 函数!!!
QT槽函数传参问题
class testrnrn public:rn test();rn ......rn private slots:rn void Slot(int i);rn private:rn ....rn;rnrntest::test()rnrn .....rn connect(pushbutton_1,SIGNAL(clicked()),this,SLOT(Slot(1)));rn connect(pushbutton_2,SIGNAL(clicked()),this,SLOT(Slot(2)));rn connect(pushbutton_3,SIGNAL(clicked()),this,SLOT(Slot(3)));rnrnrnvoid test::Slot(int i)rnrn .......rnrnrn菜鸟求教:执行结果是 ;No such slot Drawer::Slot(1);No such slot Drawer::Slot(2);No such slot Drawer::Slot(3);rn 请问槽函数怎么才能传参,求解决方法?
Qt槽函数响应两次
有一个窗口类A。现new了两个A对象,其中一个show了出来。窗口类中有个按钮,窗口show出来之后,点击按钮,为什么其槽函数响应了两次? 应该是响应一次啊~~响应那个show出来的对象
关于QT的槽函数
是不是每一个函数都可以当成是槽函数?还是说只能是在类里面标明为slot 关键字的函数才能为槽函数?
验证主线程中qt定时器的槽函数使用sleep是否会阻塞主程序,槽函数未调用
如题,我想验证下主线程中qt定时器的槽函数使用sleep是否会阻塞主程序,但现在槽函数没有被调用,请高人帮看看。rnwidget.hrn[code=c]rn#ifndef WIDGET_Hrn#define WIDGET_Hrnrn#include rnrnnamespace Ui rn class Widget;rnrnrnclass Widget : public QWidgetrnrn Q_OBJECTrnrnpublic:rn explicit Widget(QWidget *parent = 0);rn ~Widget();rnpublic slots:rn void test();rnprivate:rn Ui::Widget *ui;rn;rnrn#endif // WIDGET_Hrn[/code]rnrnwidget.cpprn[code=c]rn#include "widget.h"rn#include "ui_widget.h"rn#include rn#includernWidget::Widget(QWidget *parent) :rn QWidget(parent),rn ui(new Ui::Widget)rnrn ui->setupUi(this);rnrnrnrnWidget::~Widget()rnrn delete ui;rnrnvoid Widget::test()rnrn qDebug() << "+++++++";rn sleep(4);rn qDebug() << "=======";rnrnrn[/code]rnrnmain.cpprn[code=c]rn#include rn#include "widget.h"rn#includern#includernint main(int argc, char *argv[])rnrn QApplication a(argc, argv);rn Widget w;rn w.show();rn QTimer::singleShot(2,&w,SLOT(test()));rn int i = 0;rn while(1)rn rn qDebug() << i++;rn sleep(1);rn rn return a.exec();rnrnrn[/code]rnrn
Qt 多个控件 对应一个槽函数
控件: QPushButton *modifyBtn=new QPushButton(&quot;编辑&quot;,optWidget); //设置对象名,用于判断 modifyBtn-&amp;gt;setObjectName(QStringLiteral(&quot;modifyBtn&quot;)); QPushButton *delBtn=new QPushButton(&quot;删除&quot;,optWidget); de...
Qt Designer自动生成槽函数
Designer 设计QMainWindow, QToolBar和QMenuBar上QAction如何自动生成槽函数(如on_open_triggered())rn
QT槽函数的使用
QT槽函数的使用 例如: 在头文件中设置槽函数 public slots: void OnClickedButtonEnsure(); void OnClickedButtonExit(); cpp文件 构造函数中写入 connect(ui.pushButton_Ensure, SIGNAL(clicked()), this, SLOT(OnClickedButtonEnsure())); co...
怎么使用在类模板中定义的指向该类的指针???
rntemplaternclass Nodernrn private:rn Node *next;rn public:rn Node(T a):value(a)rn Node * getnext()constreturn next;rn friend Node* Delete( Node *head,Node *p);rn;rn这样对吗?求赐教!
PyQt5 自定义信号槽函数
文章目录1、简介2、功能实现 1、简介 自定义信号槽函数,当信号发送的时候,可以调用被绑定的槽函数 2、功能实现 # -*- coding: utf-8 -*- """ 【简介】 内置信号槽示例 """ from PyQt5.QtCore import QObject, pyqtSignal # 信号对象 class QTypeSignal(QObject): ...
Qt不在paintEvent中画图,在槽函数中画图
void Widget::on_pushButton_clicked() { qint32 temp_width=ui-&amp;gt;label-&amp;gt;width(); qint32 temp_height=ui-&amp;gt;label-&amp;gt;height(); QImage mainimg=QImage(temp_width,temp_height,QImag...
Qt中自定义信号槽
之前碰到过很多信号槽的操作,比如:点击按钮触发什么函数,吧啦吧啦的这种操作都是在界面上基于对应控件转到槽的方式实现的,如何用自定义的信号槽实现同样的功能?//第一个参数lineEdit是激发事件对象,信号中的方法必须在对象中存在,并在对象类头文件signals下定义, //第二个参数信号, //第三个参数this是槽方法所属类的对象,且必须在对象类的头文件的slots下定义 //第四个参数槽...
QT中自定义快捷键
以设置删除一行的快捷键为例: 1.选择工具-->选项 2.选择环境-->键盘,在键盘快捷键的下方的一行中查找你要设置的快捷键,此处我要设置删除一行,所以输入delete 3.选中DeleteLine那一行,在下面的Target输入框里输入你想设置的快捷键,此处我设置为Ctrl+X(直接按Ctrl + X), 输入完成后点击Reset
怎么在自定义的槽函数里用ui的部件
这样设置是肯定能行的 (ui设计师里先设置了一个But的button)rn[img=https://img-bbs.csdn.net/upload/201504/26/1430027908_463769.png][/img]rn但是我想在自定义函数里面设置ui部件怎么弄呢?是因为ui没有当成参数传进么 报错见图rn[img=https://img-bbs.csdn.net/upload/201504/26/1430028027_40379.png][/img]rn刚学还不懂 求指教
QT Designer 中怎么添加自定义槽?
如题。
QT中获得sender()函数返回的指针只在槽函数中有效吗?
我一个QT工程 创建了几个界面类, 用QStackedLayout实现这几个界面之间的切换,现在得问题是, 其中一个界面的几个按钮按下都是跳转到另外一个界面,但是这个界面显示的内容是根据按钮的不同而不同。rn 我尝试过用sender()函数得到按钮的指针,但是程序运行异常,还有什么方法能解决这个问题呢?
槽函数中new的对象怎么销毁
我的槽函数的功能是new一个对话框dialog,没有父对象。rn我疑惑的是,这个dialog怎么销毁?
C++中的类,类中定义该类的指针的用途
关于慕课网上数据结构链表篇的理解 在该课程中,当定义Node类时,在该类内部定义了一个Node类型的指针,那么它有什么作用呢? class Node { public: int data; Node *next; } 如果你不用Node的指针,那么意味着当你通过Node类来指向链表的下一个节点,你会发现数据类型错误,除非你实例化一个Node类型的指针,但是这样你会发现你写的代码会很
qt对于库中frame控件的调用
![图片说明](https://img-ask.csdn.net/upload/201907/04/1562206617_66738.png)我的库文件的ui界面是两个键盘(把小键盘称为数字键盘,大键盘称为全键盘)。![图片说明](https://img-ask.csdn.net/upload/201907/04/1562206704_510646.png)然后是现在编写的程序(由三个lineedit和一个frame组成)![图片说明](https://img-ask.csdn.net/upload/201907/04/1562206820_932464.png)我想实现的就是点击不同的lineedit调用出不同的键盘。给lineedit添加click事件我会写。但是怎么确定调用哪个键盘啊。比如点击“输入Int类型的值“,出现数字键盘;点击”输入String类型的值“,出现全键盘。
怎么在槽函数中把pushbutton disable掉?
我在一个pushbutton中的槽函数中 有用QProcess 调用linux下的终端rn这个QProcess可能要持续好几秒 如果期间再点击按钮 就可能出错rn所以我想在按按钮的时候disable掉 等槽函数运行完毕后 再enablern可是如果我在开头写上 [code=c]ui->pushButton_ccd->setEnabled(false);[/code] rn在末尾写上[code=c] ui->pushButton_ccd->setEnabled(true);[/code]rn这样是不行的 QProcess运行中按钮还是可以按rn请问我该怎么做?要用QEventLoop::ExcludeUserInputEvents 么? 但是这个我看帮助文档上写的太简略……没看明白……
类中的成员类如何调用该类成员函数
有两个类class A; class B;rnclass A中包含了类成员B bclass;rn我想在bclass中调用class A成员函数. 怎么处理比较好.
Qt控件成员怎么写?对象?指针?
如题。我想问一下Qt控件作为成员的话,大家使用哪种好一些?是用指针作为成员好呢,还是使用对象作为成员好?
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件