ui受保护,但如何在重新实现的Qthread run()函数中使用它

时间:2013-02-19 17:50:12

标签: qt user-interface qthread

我想重新实现运行函数,创建我自己的QThread类。

我创造了这个,

class MyThread : public QThread
{
public:
    void run();
};

void MyThread::run()
{
    gui w;
    w.listen_device(w.ui->comboBox->currentIndex());
    exec();
}

我不能在主线程之外使用QPaint,所以我将值作为参数提供给我的listen_device函数。

我知道来自gui的ui受到保护,所以我怎样才能获得这个值?

感谢。

1 个答案:

答案 0 :(得分:1)

gui类中创建将返回ui->comboBox->currentIndex();

的公共方法
public:
  int gui::getCurrentIndex() // or whatever
  { 
    return ui->comboBox->currentIndex();
  }

并且不要将QThread作为子类,而是使用moveToThread()上的QObject代替。