我正在创建一个绘制图形的程序;我希望能够有一个按钮,用户可以按下该按钮来选择线条颜色和样式。我希望能够直观地显示当前的选择。
目前,我知道我可以使用两个单独的小部件,一个QPush按钮,然后是我自己制作的小部件,只需使用QPen在它上划一条线。
我想将这两个小部件变成一个小部件。我希望这个小部件是一个用户按下的可按“按钮”,我可以发出信号来运行设置新QPen的例程。
此功能是否已内置?或者我是否需要创建一个重新实现QPushButton或QActionButton的新窗口小部件?或者我应该只是制作我的小部件,在其上监听鼠标点击事件并从那里创建一个信号槽?
答案 0 :(得分:0)
您可以使用QLabel
,设置样式表,并将其用作图表上的线条。您可以使用QGroupBox
的边界来定义x和y轴。
也许是这样的:
yourQLabel.setStyleSheet("QWidget {background-color: rgb(255, 0, 0); color:white; border: 1px solid black;}"); // red with black border
然后,您可以根据图表的值设置QLabel
的高度,宽度和位置。当然,这仅适用于图表上的线条为矩形的情况。如果他们不是,那么您可能不得不使用QLabel
以外的其他内容。
使用QLabel
的setGeometry方法设置此项。
yourQLabel.setGeometry(x, y, width, height);
就您的按钮而言,如果您愿意,您可以执行类似的操作。 QPushButton
也有setGeometry
和setStyleSheet
方法。
如果您希望告诉您的按钮在点击时执行某些操作,假设您有一个名为QPushButton
的{{1}}对象,请将其添加到您的头文件(.h)中:
myButton
然后在源文件(.cpp)中:
class YourClass
{
Q_OBJECT
//...
private slots:
void on_myButton_clicked();
}