【发布时间】:2013-05-31 05:50:34
【问题描述】:
在 python 中,我们通过传入要在生成信号时调用的函数来非常容易地编写自定义插槽。 而在 C++ 中,连接函数需要我们传递插槽函数的地址,或者我想。我怎么做。我尝试使用 this 但没有用。
Python 代码::
class imviu(QtGui.QWidget):
def __init__(self):
super(imvui,self).__init__()
self.btn=QtGui.QPushButton('Browse')
btn.clicked.connect(self.openimg)
def openimg(self):
#do something
C++ 代码::
class imviu: public QWidget
{
public:
imviu(QWidget *parent=0);
QPushButton *btn=new QPushButton("Browse");
void openimg(void);
};
imviu::imviu(QWidget *parent)
:QWidget(parent)
{
connect(btn, SIGNAL(clicked()),this,SLOT(openimg()));//this does'nt work:QObject::connect: No such slot QWidget::openimg()
}
void imviu::openimg()
{
//do something
}
【问题讨论】:
-
除了不知道如何在c++中使用Qt之外,你似乎也不知道c++类的基础知识。我建议你参加初学者课程。
-
让我知道哪个部分跳过了你......