gpt4 book ai didi

qt - 如何将自己的选项页面添加到 QtCreator

转载 作者:行者123 更新时间:2023-12-04 12:48:57 26 4
gpt4 key购买 nike

我想向 QtCreator 添加自定义选项页面。项目向导可以轻松创建通用 QtCreator 插件。但是,如何从那里着手并添加新功能和新小部件?它只是很薄,如果有记录的话。我发现的关于如何编写 QtCreator 插件的唯一教程是来自 VCreate Logic 的旧 pdf 文件。

http://www.vcreatelogic.com/downloads/files/Writing-Qt-Creator-Plugins.pdf

但是,这描述了非常早的 QtCreator 版本(早期版本 1)的插件开发。大多数示例不再使用当前的 QtCreator 进行编译。

最佳答案

QtCreator 极大地帮助创建了 QtCreator 插件。它有自己的QtCreator 插件的项目类型。

要创建一个新的选项页面,启动一个 QtCreator 插件项目。在这个例子中名称为“myoptionspage”。 QtCreator 然后创建一个工作插件 stub ,它不是选项页面,而是如何在 QtCreator 中添加新菜单条目的示例菜单。很好,但没有被问到。要创建一个新的选项页面,方法 myoptionspage::initialize必须更改:

bool myoptionspage::initialize(const QStringList &arguments, 
QString *errorString)
{
Q_UNUSED(arguments)
Q_UNUSED(errorString)

addAutoReleasedObject(new MyMoptionsPageWidget);
return true;
}

MyMoptionsPageWidget 将是实际的选项页面。这是MyMoptionsPageWidget.h 文件:

#include <coreplugin/dialogs/ioptionspage.h>

class MyMoptionsPageWidget
: public Core::IOptionsPage
{
Q_OBJECT

public:

explicit MyMoptionsPageWidget(QObject *parent = 0);

private:

QWidget *createPage(QWidget *parent);

void apply(void);

void finish();

};

重要的部分是#include <coreplugin/dialogs/ioptionspage.h>public Core::IOptionsPage遗产。

在 MyMoptionsPageWidget .cpp 文件中:

using namespace myoptionspage;

MyMoptionsPageWidget::MyMoptionsPageWidget(QObject *parent)
: Core::IOptionsPage(parent)
{
setId(Core::Id("MyOptionsPageID"));
setDisplayName(tr("My Plugin"));

// Create a new category for the options page. Here we create a totally
// new category. In that case we also provide an icon. If we choose in
// 'setCategory' an already existing category, the options page is added
// the chosen category and an additional tab. No icon is set in this case.
setCategory(Constants::MYOPTIONSPAGE_CATEGORY);
setDisplayCategory(QLatin1String(
Constants::MYOPTIONSPAGE_CATEGORY_TR_CATEGORY));
setCategoryIcon(
QLatin1String(Constants::MYOPTIONSPAGE_CATEGORY_CATEGORY_ICON));
}

// Demoform is an arbitrary QWidget. For this example I hacked one
// together with the designer.
QWidget *MyMoptionsPageWidget::createPage(QWidget *parent){
return new Demoform;
}

void MyOptionsPage::apply(){
// Implement the apply botton functionality
}

void MyOptionsPage::finish(){
// Implement the ok button functionality
}

myoptionspageconstants.h 文件由 QtCreator 自动创建。

namespace myoptionspage {
namespace Constants {

const char MYOPTIONSPAGE_CATEGORY[] = "H.My Plugin";
const char MYOPTIONSPAGE_CATEGORY_CATEGORY_ICON[] = ":resources/Icon.png";
const char MYOPTIONSPAGE_CATEGORY_TR_CATEGORY[] =
QT_TRANSLATE_NOOP("My Plugin", "My Plugin");

}
}

结果:一个自定义选项页面,在其自己的类别中有自己的图标:

enter image description here

关于qt - 如何将自己的选项页面添加到 QtCreator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18633006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com