使用input_box=new Rtextedit实现点击Rtextedit(继承与Qtextedit)弹出一个界面,而不是点击边沿弹出 用C++
时间: 2024-02-09 14:11:27 浏览: 118
您可以通过以下步骤实现这个功能:
1. 创建一个新的 QWidget 类,用于作为弹出的界面。
2. 在 Rtextedit 的构造函数中,连接一个槽函数,用于在点击 Rtextedit 时弹出该界面。例如:
```
connect(this, SIGNAL(clicked()), this, SLOT(showPopup()));
```
3. 在槽函数中,创建并显示弹出界面。例如:
```
void Rtextedit::showPopup()
{
QWidget *popup = new QWidget(this);
popup->setGeometry(this->x() + this->width(), this->y(), 200, 200);
popup->show();
}
```
这将在 Rtextedit 的右侧创建一个大小为 200x200 的弹出界面。
4. 如果您需要在弹出界面中添加更多控件,可以在 QWidget 类中添加它们。例如:
```
class PopupWidget : public QWidget
{
public:
PopupWidget(QWidget *parent = nullptr) : QWidget(parent)
{
QLabel *label = new QLabel("This is a popup", this);
label->setGeometry(10, 10, 100, 20);
QPushButton *button = new QPushButton("Close", this);
button->setGeometry(10, 40, 100, 20);
connect(button, SIGNAL(clicked()), this, SLOT(close()));
}
};
```
然后在槽函数中创建并显示该控件:
```
void Rtextedit::showPopup()
{
PopupWidget *popup = new PopupWidget(this);
popup->setGeometry(this->x() + this->width(), this->y(), 200, 200);
popup->show();
}
```
这将在 Rtextedit 的右侧创建一个带有标签和按钮的弹出界面。
阅读全文