小编sit*_*eal的帖子

QWidget派生类不可见

我可以在主窗口类的一个函数中创建和查看QWidget:

..
// ok
QWidget *w = new QWidget(this);
w->setGeometry(400,300,400,300);
w->setStyleSheet("background-color:white;");
w->show();
..
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过创建另一个派生自QWidget的类来做类似的事情时,我看不到任何东西:

class MyWidget : public QWidget
{
        public:
        MyWidget(QWidget *sParent):QWidget(sParent)
        {
        }
};

        ..
        // nothing visible happens.
        MyWidget *w = new MyWidget(this);
        w->setGeometry(400,300,400,300);
        w->setStyleSheet("background-color:white;");
        w->show();
        ..
Run Code Online (Sandbox Code Playgroud)

什么可能导致这个?

注意:关于这个问题的一切:http://pastebin.com/haCHfqnu

qt derived-class qwidget

6
推荐指数
1
解决办法
1992
查看次数

映射多变量/层系统的概括

我用C++ / QT编写了一个应用程序,它与设备通信以读取/写入其变量,将它们放入/获取结构中,并在 gui 中呈现它们以用于查看/编辑目的。

1)该设备附带了一个示例 c 代码,该代码还定义了通信协议(以非常糟糕的方式),例如:

#define VALUE_1 0x12345678
#define VALUE_2 0xDEADBEEF
#define MY_DEVICE_VAR (VALUE_1 << 4) & (VALUE_2 >> 6)
#define MY_DEVICE_VAR_1 (MY_DEVICE_VAR & (VALUE_1 << 2)
#define MY_DEVICE_VAR_2 (MY_DEVICE_VAR & (VALUE_2 << 4)
#define MY_DEVICE_VAR_2 (MY_DEVICE_VAR & (VALUE_2 << 4)
// .. and 300 more lines like above
Run Code Online (Sandbox Code Playgroud)

因此该变量VAR_1表示为:MY_DEVICE_VAR_1

2)我有一个保存设备所有变量的结构:

struct MyDeviceData
{
    int var1;
    double var2;
    char var3;
    bool var4;
        .
        .
};
Run Code Online (Sandbox Code Playgroud)

它基本上是从设备读取的数据的存储/投影。有 4 种不同类型的 POD …

c++ user-interface serialization qt

5
推荐指数
1
解决办法
236
查看次数

qt继承的信号不会到达插槽

这是我的问题的代码

class Base : QThread  
{
   Q_OBJECT  
 virtual void run() = 0;  
signals:  
 void Ping(int);  
};  

class Derived : public Base  
{  
  void run()  
  {  
    emit Ping(42);  
  }  
}  
Run Code Online (Sandbox Code Playgroud)

信号(42)不会到达/呼叫插槽.怎么了?提前致谢.

inheritance qt multithreading signals-slots

1
推荐指数
1
解决办法
1985
查看次数