利用QT制作自定义控件(linux下)

1.         首先利用QT crearot 创建一个自定义控件项目,在创建的过程中要指明创建的类和创建的类的实例名称。这样在以后使用的过程中可以直接使用。此处还得指明icon图标文件为了在designer中显示。

2.         在创建的项目中开始编写相应的处理函数,肯能主要的是重载onpaint函数,这样就可以设计出想要的自定义widget的内容。

3.         选择好版本进行编译。

4.         在编译后的运行目录下,用控制台命令 运行make install 这样他会默认的将控件安装到所在版本的plugin/designer 中是一个.so文件(linux下)

5.         将生成并安装的.so 文件复制到qt creator的安装目录bin/designer 中这样再次打开 qt creator就可以在designer窗口中看到自定义的控件了。可以想使用别的qt自带的控件一样使用它。

6.         将 编写自定义控件中所编写的.h .cpp .pri文件拷贝到使用该控件的项目的目录下。

7.         在使用该控件的项目的.pro文件中加入include (***.pri)既可以编译运行了。


转  http://blog.csdn.net/qqyanchong/article/details/6372323

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Linux下,可以通过自定义QWidget来实现自定义标题栏。具体实现步骤如下: 1. 创建一个继承自QWidget的类,用于实现自定义标题栏。 ```cpp class MyTitleBar : public QWidget { Q_OBJECT public: explicit MyTitleBar(QWidget *parent = nullptr); protected: void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; private: QPoint m_lastPos; }; ``` 2. 在构造函数中设置标题栏的大小、背景色和布局。 ```cpp MyTitleBar::MyTitleBar(QWidget *parent) : QWidget(parent) { setFixedHeight(30); setStyleSheet("background-color: #333333"); QHBoxLayout *layout = new QHBoxLayout(); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); setLayout(layout); } ``` 3. 重写mousePressEvent和mouseMoveEvent函数,实现标题栏的拖动。 ```cpp void MyTitleBar::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { m_lastPos = event->globalPos() - this->parentWidget()->geometry().topLeft(); } } void MyTitleBar::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton) { QPoint pos = event->globalPos() - m_lastPos; this->parentWidget()->move(pos); } } ``` 4. 在主窗口中添加自定义标题栏,并将系统标题栏隐藏。 ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle("Custom Title Bar"); setWindowFlags(Qt::FramelessWindowHint | windowFlags()); MyTitleBar *titleBar = new MyTitleBar(this); setMenuWidget(titleBar); // 添加其他控件及布局 // ... } ``` 5. 编译运行程序,即可看到自定义标题栏。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值