我有一个Qt/C++问题,一个简单的QWidget程序在孩子内部绘制一个椭圆QWidget.
该程序由以下组成:
(1)父母QWidget
(2)儿童QWidget(用作椭圆的绘图表面)
(3)平局QPushButton
以下是代码的一部分(为简单起见省略了QPushButton Slot和Signal代码)
void Draw::paintEvent(QPaintEvent *event) {
QPainter painter;
painter.begin(child_Widget); //The line with the problem
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
painter.drawEllipse(50, 50, 100, 100);
painter.end();}
Run Code Online (Sandbox Code Playgroud)
第2行painter.begin(child_Widget);没有做任何事情.只有当我用第2行替换第2行时,程序才会绘制椭圆,painter.begin(this);但是根据需要绘制父项QWidget而不是子项QWidget.
PS我将child_Widget放在GroupBox中,而GroupBox又放在一个QVBoxLayout.
有什么建议吗?
谢谢.
因为我对Visual Studio非常不友好(它只是垃圾!)我正在尝试使用Qt Creator,这似乎是我的c ++项目的解决方案,可以轻松地在我的Mac上运行.但我正在使用OpenCV.那么,我如何在Qt中设置库? (包括文件夹,也许还有一些库)
我正在尝试使用这个应用程序:http://www.qt-apps.org/content/show.php/Qt+Opencv+webcam+viewer? content= 89995
但是自从Qt以来得到很多错误不知道在哪里找到库,我应该在哪里输入路径或什么?
帮助将非常感谢.
伊格纳西奥
我正在使用Qt 4.7.1并在我的应用程序中嵌入了一个webview.但是在尝试访问http://webkit.org/demos/sticky-notes/以测试HTML 5数据库功能时出现以下错误
Failed to open the database on disk. This is probably because the version
was bad or there is not enough space left in this domain's quota
Run Code Online (Sandbox Code Playgroud)
我使用以下命令编译了我的静态Qt库:
configure --prefix=/usr/local/qt-static-release-db --accessibility --multimedia
--audio-backend --svg --webkit --javascript-jit --script --scripttools
--declarative --release -nomake examples -nomake demos --static --openssl -I
/usr/local/ssl/include -L /usr/local/ssl/lib -confirm-license -sql-qsqlite
-sql-qmysql -sql-qodbc
Run Code Online (Sandbox Code Playgroud) 我做了一个40M的应用程序(对我来说非常大).
但真正的惊喜是我发现tmp目录是300M!
我还没有保存文档中的任何文件!
所有文件的名称tmp都是:
stack-logs.80127.MyAppName.index
stack-logs.80163.MyAppName.vwnxgi.link
...
Run Code Online (Sandbox Code Playgroud)
这些是什么东西?他们占据了令人难以置信的300M大小!
我有什么办法可以定期清理它们吗?或者这是因为我在我的iPhone上调试我的应用程序?
真的需要一些帮助!
我遇到以下问题:创建一个QFileSystemWatcher,它可以在Linux上正常运行,但在Windows 7上却无法运行。您能在代码中发现可能使它无法正常工作的任何内容吗?
谢谢。
这是初始化它的代码:
mConfigChangeWatcher = new QFileSystemWatcher();
mConfigChangeWatcher->addPath(config_file_name);
QObject::connect(mConfigChangeWatcher,
SIGNAL(fileChanged(QString)),
this,
SLOT(configFileChanged(QString)));
Run Code Online (Sandbox Code Playgroud)
这应该是完成工作的插槽:
void MyClass::configFileChanged(const QString &file)
{
qDebug() << "Changed: " << file ;
}
Run Code Online (Sandbox Code Playgroud) 我需要知道如何在Blackberry 10 Cascades Beta 3 SDK,QML,Qt,C++中制作图表/图表.如果有人可以给我一个例子或指向我,告诉我如何做到这一点,我将不胜感激.
我有一个GroupDataModel项目,并使用它来填充一个ListView.每个项目都有一个类别,可以是"电视"或"电影".我将"category"设置为排序键,并ListView显示按类别分组的项目.
但是,类别的顺序是"电影",然后是"电视".我需要他们按照其他顺序:"电视"然后"电影".
这可能吗?
码:
GroupDataModel* results = new GroupDataModel();
results->setGrouping(ItemGrouping::ByFullValue);
QStringList sortingKeys;
sortingKeys.append("category");
results->setSortingKeys(sortingKeys);
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方式来改变QTextCharFormat一个的QTextEdit的QTextBlock不触发除了撤销命令。让我解释:
所述QTextCharFormat的QTextBlock可以通过使用容易地改变QTextCursor::setBlockCharFormat()方法。假设我们有一个QTextEdit被调用的对象,myTextEdit它的可见光标在我们要更改的文本块内,我们可以QTextCharFormat像这样更改文本块:
text_cursor = myTextEdit.textCursor()
text_cursor.setBlockCharFormat(someNewCharFormat)
Run Code Online (Sandbox Code Playgroud)
上面的代码可以正常工作,但是还会向myTextEdit撤消堆栈中添加撤消命令。对于我自己而言,我希望能够改变QTextCharFormat的QTextBlock 不添加撤销命令到QTextEdit的撤消堆栈。
我考虑使用该QTextDocument::setUndoRedoEnabled()方法暂时禁用撤消/重做系统,但是该方法也清除了撤消堆栈,我不想这样做。我还寻找了其他方法来更改撤消/重做系统的行为,但是我还没有找到一种方法来使其暂时忽略更改。我只是想在QTextEdit没有撤消/重做系统注册更改的情况下对a 进行更改。
任何提示或建议,不胜感激。谢谢!
问候溢出.我正在尝试将GUI添加到现有项目中.更具体地说,是作为.so文件加载的插件(或者在win32 a上编译时.dll)
该项目已经有自己的线程实现来处理可移植性.我知道Qt有自己的跨平台线程模型,但最好留在现有的线程模型中.
我对Qt老手的问题[我刚刚开始阅读文档]是:如上所述,是否可以使用Qt将GUI嵌入到插件中?该插件已经是一个命令行界面,我希望GUI可选,即使它已编译.由于这些标准函数被主程序调用,GUI(我假设将存在于另一个线程中)将不得不可访问或能够调用方法,以便CLI线程可以共存,标准函数可以与两个接口的任何排列一起使用.
在使用代码后,我可以从插件中启动一个简单的GUI.该插件已经是CLI,并具有从主程序调用的功能.我只是在初始化插件时创建了一个新线程,并从那里启动了阻塞GUI:
QApplication app(NULL, NULL);
window = new zGui;
window->show();
app.exec();
Run Code Online (Sandbox Code Playgroud)
这里的问题是:是否可以与GUI通信或者从CLI线程访问GUI元素?
好吧,到目前为止,在一个单独的线程中启动阻塞GUI已经没有问题.我也可以从主插件线程访问GUI中的小部件.据我所知,这种做法不仅仅是因为我到目前为止收到的答案,而且Qt库正在吐出一些关于另一个线程不安全访问的警告.
截至目前我只在linux环境中工作,也许真正的问题将在其他系统上呈现.我只看到一个我无法肯定的故障是相关的:
更改进度条小组件的最大值和最小值后,进度条显示为空白.我能够通过以下方式对此进行简单的修复
//here is me setting the values
window->progressBar->setMaximum(character.maxHP);
window->progressBar_2->setMaximum(character.maxMP);
window->progressBar->setValue(character.curHP);
window->progressBar_2->setValue(character.curMP);
//and here is the fix
window->progressBar->setVisible(false);
window->progressBar->setVisible(true);
window->progressBar_2->setVisible(false);
window->progressBar_2->setVisible(true);
Run Code Online (Sandbox Code Playgroud)
我想我的最后一个问题是"从其他线程访问Qt GUI不安全的原因是什么?为什么?"
我需要在我的symbian Qt项目中使用一些加密算法.但我无法为我的symbian环境编译QCA.
我如何将我的libcrypto.lib(它是用于symbian的openssl静态库)链接到我的QT应用程序?我找不到任何配置我的QT应用程序来接受这个库的地方.
是否有可能为symbian编译QCA?如果有,怎么样?
问候