小编Rei*_*ica的帖子

从Qt中选择SQLite

我尝试在Linux上的Qt 4.5.3上处理SQLite数据库.我已经创建了数据库.

然后,我尝试在Qt上执行select:

db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(filename); // Here is FULL path to the database. I've checked it twice :)
bool ok = db.open();
qDebug() << db.tables();

QSqlQuery query;
query.exec("select * from lessons");
qDebug() << query.size();
qDebug() << query.isSelect();
qDebug() << query.isValid();
Run Code Online (Sandbox Code Playgroud)

但调试控制台说:

("lessons", "weeklessons", "weeks") 
-1 
true 
false 
Run Code Online (Sandbox Code Playgroud)

为什么选择什么?我做错了什么?

c++ sql sqlite qt

6
推荐指数
2
解决办法
2万
查看次数

包含Qt标头的正确方法是什么?

到目前为止,我知道几种#includeQt类的方法:

  • #include <QtModule>

    例如QDomDocument,这带来了特定模块的所有类QDomElement,QDomNode以及来自的许多其他类#include <QtXml>.

  • #include <QClassName>

    这增加了一个特定的类,可能想要使用,例如声明QEvent,QStringList,QFile.

  • #include <qcstyleheader.h>

    这具有前一方法的效果,除了不同的标题名称.

所以我想知道,#includeQt课还有其他方法吗?它们是否相同,或者由于某些原因,它们中的一些是否优先于其他人?这取决于#include内部.cpp还是.h文件?这会影响可执行文件的编译速度和大小吗?

简而言之,最好的方法是什么?

c++ qt qt4

6
推荐指数
1
解决办法
4251
查看次数

为什么在exec()之前调用quit()不退出应用程序?

为什么这个程序正常运行并显示主窗口?我希望它退出,因为quit()在构造函数中调用.

Main.cpp的:

#include<QApplication>
#include"MainWindow.h"

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    MainWindow mainWindow;
    mainWindow.show();
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

MainWindow.cpp:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
   qApp->quit();
}

void MainWindow::closeEvent(QCloseEvent *)
{
    qDebug("Hello world!");
}
Run Code Online (Sandbox Code Playgroud)

qt

6
推荐指数
2
解决办法
2318
查看次数

如何使用QPushButton进行toggled()信号处理?

我有follwing代码,其中moreButton一个QPushButton.当我切换按钮时,没有任何反应.

难道不应该显示或隐藏secondaryGroupBoxtertiaryGroupBox

QObject::connect(moreButton, SIGNAL(toggled(bool)), secondaryGroupBox, SLOT(setVisible(bool)));
QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(setVisible(bool)));
Run Code Online (Sandbox Code Playgroud)

qt signals-slots

6
推荐指数
1
解决办法
1万
查看次数

将静态库与qmake链接时如何提供链接器选项?

我想在使用qmake 构建静态库时为链接器提供选项.假设我在使用MSVC构建时想要获得详细的链接器输出.项目文件如下所示:

# mylib.pro
TEMPLATE = lib
TARGET = mylib
CONFIG += staticlib
QT += core
win32-msvc*: QMAKE_LFLAGS += /VERBOSE
unix: QMAKE_LFLAGS += -v
Run Code Online (Sandbox Code Playgroud)

这是整个项目文件.它应该导致一个空的静态库,其中没有对象.

设置既不QMAKE_LFLAGS也没有QMAKE_LFLAGS_STATIC_LIB,也没有LIBS对连接器有任何影响.这些变量中没有设置甚至使它成为Makefile.如果QMAKE_LFLAGS有效,我希望在命令行上看到/VERBOSE-v传递给链接器,适用于给定的平台.

使用什么makefile生成器并不重要,这种行为似乎是一致的.这两个感兴趣的平台是.

qmake -spec win32-msvc2008
qmake -spec macx-llvm
Run Code Online (Sandbox Code Playgroud)

由于qmake的跨平台特性,您可以在碰巧安装Qt的任何平台上进行测试.这从qt 4.8.4和5.1.1再现qmake.mkspec中给出的msvc版本无关紧要.

qt qmake

6
推荐指数
1
解决办法
9470
查看次数

如何删除QMainWindow和mdiArea之间的空间(边距)?

我有一个QMainWindow,我已插入mdiArea主窗口.
您必须先看到以下图像:

正如您所见,灰色区域mdiArea和主窗口之间的空间(边距)mdiArea是我想要删除它.
我使用过setContentsMargins函数,但没有做任何事情.

我怎样才能删除这些空格?

我希望如下图所示: 在此输入图像描述

c++ qt qt5

6
推荐指数
1
解决办法
4913
查看次数

Qt标签中的QLabel页边距和样式表填充

我有一个标签,并在样式表中设置了填充,并使用设置了边距setMargin()

ui->label->setPixmap(redRectWithGreenBorder(80, 40));
ui->label->setStyleSheet("QLabel {border: 1px solid gray;border-radius: 2px;background-color: white;padding: 0px 5px 10px 15px;}");
ui->label->setMargin(5);
Run Code Online (Sandbox Code Playgroud)

但这实际上是这样的:

在此处输入图片说明

可见边距为5、10、15和20(我使用图像编辑器检查过)。也就是说,它们等于该边的样式表的值加上的值margin(),即0 + 5、5 + 5、10 + 5、20 + 5。

但是,文档说明了以下内容setMargin()

margin:int此属性保存边距的宽度。

边距是帧的最内像素和内容的最外像素之间的距离。

默认边距为0。

如果我以书面形式取文件,我会期望边距是内容与边界之间的真实距离。但事实并非如此。而是,边距和样式表填充的总和才是实际边距。

我的问题是,此行为在文档中的何处描述?在文档中是否有其他地方指定了我错过的这种行为?

c++ qt qtstylesheets

5
推荐指数
1
解决办法
1万
查看次数

删除QComboBox listView阴影效果

默认情况下,QComboBox列表视图具有阴影效果.有没有办法删除它?阴影是由QStyle或以其他方式控制的?

qcombobox影子

qt qt4 qcombobox

5
推荐指数
1
解决办法
1055
查看次数

我可以在不使用矩形的情况下在Qt c ++中绘制椭圆吗?

我在Qt中使用c ++,我想绘制一个椭圆.从Qt文档中我发现我可以使用drawEllipse从边界矩形中绘制一个椭圆:

void QPainter::drawEllipse(const QRectF &rectangle)
Run Code Online (Sandbox Code Playgroud)

矩形由下式给出:

QRectF(qreal x, qreal y, qreal width, qreal height)
Run Code Online (Sandbox Code Playgroud)

但是,这仅提供具有水平/垂直长轴和短轴的椭圆.

我的椭圆由两个坐标集给出,表示长轴和长轴和短轴的长度之比.因此,轴可以具有非水平或垂直的斜率.(无论如何我需要使用这个方法,因为我也将它导出到dxf文件,其中有这种表示法)

我的问题是:

有没有其他方法来绘制椭圆而不是使用边界矩形然后旋转它?

将它放在水平/垂直矩形中然后在从头开始有轴坐标时计算旋转似乎有点傻.

c++ qt ellipse

5
推荐指数
1
解决办法
691
查看次数

避免/检测导出文件的操作

我正在使用C ++ Qt应用程序。为了在应用程序或所连接的设备出现故障时为用户提供帮助,该程序会导出所有内部设置,并将它们存储在一个普通文件中(此刻为csv)。然后将该文件发送给公司(例如,每封邮件)。

为了避免对导出的设置进行不注意的操作(例如,导出后由用户手动操作),我需要某种机制来检测到这一点。

该方法应尽可能简单,因为这不是非常关键的信息,但仍然有效。

我能想到的只是散列或加密,但是我很确定已经有一个简单而优雅的解决方案。

c++ security hash qt

5
推荐指数
1
解决办法
65
查看次数

标签 统计

qt ×10

c++ ×6

qt4 ×2

ellipse ×1

hash ×1

qcombobox ×1

qmake ×1

qt5 ×1

qtstylesheets ×1

security ×1

signals-slots ×1

sql ×1

sqlite ×1