qt GUI连接

时间:2009-09-19 00:00:57

标签: c++ user-interface qt

我刚刚开始使用QT。我已经阅读了一些教程,我想我对信号和插槽有所了解。我正在编写一个GUI,它有各种按钮可以改变我主程序的状态。因此,例如在绘图应用程序中,您将选择不同的绘图工具(使用各种按钮)。

最好的方法是什么?我的第一个想法是尝试将PushButton的单击信号连接到设置current_tool变量的某个函数。我做了一些搜索,找不到将QObject信号连接到常规函数的方法。

这让我相信可能有不同的方法。我在其中创建一个具有各种GUI属性的新QObject(我自己的扩展)。然后我会在这里为各种按钮定义我的插槽。

在QT中执行此操作的最佳方式是什么?我是新人,不知道首选做法。

任何信息都会有用, 感谢

2 个答案:

答案 0 :(得分:1)

您可以将这些“普通功能”定义为插槽。插槽只是normal functions,也可以通过信号调用:

class ToolSelector : public QObject {
  Q_OBJECT

public:
  Tool *selected;

public slots:
  void selectBrush();
  void selectPen();
  void selectFill();
};

ToolSelector::selectBrush() {
  delete selected;
  selected = new Brush();
}

ToolSelector::selectPen() {
  // ...
}

// ...

toolsel = new ToolSelector();
brushButton = new QPushButton();
connect(brushButton, SIGNAL(clicked()), toolsel, SLOT(selectBrush()));

答案 1 :(得分:0)

继承uic生成的类,创建一个MyAppWindow类。在该类中提供额外的METHOD,以及Document或Drawing对象。将这些方法连接到您感兴趣的信号,并更改包含绘图状态的成员变量。