调用方法
正常方式:
QMetaObject::invokeMethod(obj, "function");
但是,我想要的不是使用string.This:
QMetaObject::invokeMethod(obj, function());
// or any macro like SLOT
QMetaObject::invokeMethod(obj, FUNC_NAME(function()));
日安!
从Qt 4.7.3文档不清楚可以使用QMetaObject::invokeMethod()或不使用QMetaObject::invokeMethod()调用属性。但真正奇怪的是,这两个调用都失败了:
class A : public QObject
{
Q_OBJECT
public:
Q_PROPERTY( int value READ value )
int value() { return 0; }
Q_PROPERTY( int invokableValue READ invokableValue )
Q_INVOKABLE i
我确实需要从我的MainWindow类调用一个方法,该方法继承自类,继承自MainWindow之外的一个类,如下所示:
Q_ASSERT(QMetaObject::invokeMethod(mainWindow, "attachmentDownloadComplete"));
mainWindow属于类MainWindow : public QMainWindow类型
错误是:
no matching function for call to 'QMetaObject::invokeMethod(MainWindow*&, const char [27])
我有一个超类Common,它继承了QObject。然后,我得到了一个类Item,它继承自Common。
Common.h
class Common : public QObject {
Q_OBJECT
public:
// some methods
};
Item.h
class Item : public Common {
Q_OBJECT
public:
// some methods
void test(QString value);
};
Item.cpp
void Item::test(QString value) {
qDebu
我有一个递归函数,它遍历Qt插件的元数据。从QMetaObject获得QMetaType很简单,但是我找不到任何东西可以让我从QMetaObject获得QMetaType。请看下面的例子:
QPluginLoader pluginLoader(pluginPath);
const QMetaObject *pMetaObject = pluginInstance->metaObject();
//how do I get the metatype? in the meantime as I move forward
auto metaMethod = pMetaObject->me
当我运行qt应用程序时,我会收到警告消息。
$ ./TestLauncher
QSystemTrayIcon::setVisible: No Icon set
QMetaObject::connectSlotsByName: No matching signal for on_Save_clicked()
QMetaObject::connectSlotsByName: No matching signal for on_CancelButton_clicked()
...
我只想隐藏所有在应用程序运行时打印在终端上的警告。
我的代码如下所示,它执行异步调用:
QMetaObject::invokeMethod(this, "endSelectionHandling", Qt::QueuedConnection);
我想像这样修改代码:
QMetaObject::invokeMethod(this, "endSelectionHandling", Qt::QueuedConnection);
// I want to add statements here which depend on the result of the above async call.
// How can
我想写ConnectMathod(...)以这样方式接受QObject*和接收器插槽。并建立连接 class A : public QObject {
public :
A();
~A();
signals :
void sigA(int);
slots :
void slotA(bool);
} class B : public QObject {
public :
B();
~B();
signals :
void sigB(bool);
slots :
void slotB(int);
} // C类:我想写通用的方法,期望接收器(QObject*)和槽 class C : publi
我正在尝试使用cmake构建一个qt项目。首先,我只用qt creator编写了一段简单的代码,其中包含main.cpp、mainwindow.cpp和mainwindow.h。下面是我的CMakeLists.txt配置。
cmake_minimum_required(VERSION 2.8.11)
project(testproject)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically
错误: error: no matching function for call to ‘QArgument<QString>::QArgument(
const char [8],
__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >,
std::__cxx11::basic_string<char> >::value_type&)’ 在: QMetaObject::invokeMethod(
m