小编vah*_*cho的帖子

如何在Qt中对QList <QVariant>进行排序?

我有以下数据结构.

QList<QVariant> fieldsList
Run Code Online (Sandbox Code Playgroud)

我该如何排序这个清单?此列表包含字符串.我想fieldList按字母顺序排序?

sorting qt qvariant

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

如何监控QT信号?

在调试期间,我想看看等待我的程序的事件循环.它可能已经泛滥,我希望看到什么信号,没有(手动)向每个Q_EMIT添加特定的日志消息.

可能的解决方案可能是看一些包含事件队列的内部qt数据结构(有这样的事情吗?怎么样?)

要么 -

为每个发出的信号写一条日志信息(这可能吗?).

还有其他想法吗?

(Windows上的QT 4.8,使用visual studio 2012)

c++ qt visual-studio

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

QApplication::setWindowIcon 适用于 Windows XP,但不适用于 Windows 7

在一个简单的 Qt 应用程序中,如下所示:

int main(int argc, char* argv[])
{
  QApplication app(argc, argv);
  app.setWindowIcon(QIcon(":/qapp/appicon.ico"));
...
Run Code Online (Sandbox Code Playgroud)

我们在第二行设置图标(这一行和资源中的图标文件是我的测试程序和Qt向导生成的应用程序的唯一区别)。这个应用程序在 Windows XP 上运行完美,但在 Windows 7 上我们看不到窗口左上角的图标(系统显示默认图标而不是我的 appicon.ico)。

开发者电脑配置:

  • 视窗 XP-SP3,
  • Qt 5.1,
  • MSVS2010-SP1。

更新:

开发者的操作系统是Windows XP,所以我们有一个临时的答案。当我们在装有 Windows 7 的计算机上编译此应用程序时,问题消失了(应用程序在 WinXP 和 Win7 上正确显示图标)。所以现在我们必须在 Windows 7 上编译这个应用程序的版本。但这看起来不是完美的解决方案。

你有什么想法,如何更好地解决这个问题?

c++ qt windows-xp windows-7 qt5

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

动态更改网格布局项的位置

我有一个网格布局,显示如下图所示的图像。我希望能够在任何位置交换两个图像。

图像网格

层次结构是这样的:

ScrollArea->GridLayout->Label[n]->Pixmap

在代码中动态创建的网格布局中有n 个标签。

可以删除我想要的列/行中再次创建的所有内容,但我正在尝试找到一种更优雅的方法来执行此操作。有小费吗?

qt qt-creator

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

在QGraphicsView中设置图片的缩小限制

我正在使用QGraphicsView缩放标签上的图像.但是当我缩小时,我想为缩小设置一个特定的限制.我使用以下代码

scene = new QGraphicsScene(this);
view = new QGraphicsView(label);
QPixmap pix("/root/Image);
Scene->addPixmap(pixmap);
view->setScene(scene);
view->setDragMode(QGraphicsView::scrollHandDrag);
Run Code Online (Sandbox Code Playgroud)

在轮子事件的插槽

void MainWindow::wheelEvent(QWheelEvent *ZoomEvent)
{
    view->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
    double scaleFactor = 1.15;
    if(ZoomEvent->delta() >0)
    {
        view->scale(scaleFactor,scaleFactor);
    }
    else
    {
        view->scale(1/scaleFactor,1/scaleFactor);
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望图像在一定程度上不应缩小.我该怎么办?我尝试设置QGraphicsView的最小大小,但这没有帮助.

谢谢 :)

qt qgraphicsview

4
推荐指数
1
解决办法
2377
查看次数

带有Timestamp的qDebug控制台输出

我写了一个用于测试数据库连接的qt小型控制台实用程序,代码块是:

db.setHostName("hostIP");    
db.setDatabaseName("name");    
db.setUserName("uid");    
db.setPassword("pw");    
db.setPort(1521);

while(true)
{
    if (db.open())
    {
        qDebug()<<"OPEN";
        db.close();
    }
    else
    {
        qDebug()<<"YOU MESSED UP "<<db.lastError().text();
    }
}
Run Code Online (Sandbox Code Playgroud)

数据库关闭或无法连接的控制台输出可以在控制台输出中看到,我想要的也是开发时间戳.

有没有办法在控制台上打印事件时间戳以及qDebug消息???

c++ qt timestamp database-connection qt4

4
推荐指数
2
解决办法
5723
查看次数

QT - 如何从QTableView中的单行获取值

我有一个QTableView记录很少,一行包含四列.我需要获取这4个索引值(名称,姓氏,年龄,用户名)以便将其删除SQLite,因此我需要将这四个值放入删除查询中.我希望点击的各项指标THAT行,并取回所有4个值.我该怎么做?谢谢

sqlite qt qtableview qmodelindex

3
推荐指数
1
解决办法
6660
查看次数

如何在处理之前不报告整个文件的情况下报告进度

我必须解析一个包含数千条记录的大文件。我想显示一个进度条,但是我不知道提前录制的数量。我是否必须将此文件翻转两次?

  • 首先知道录音的数量。
  • 第二次进行治疗

还是有一种更简单的方法来获取记录数,而无需在处理之前遍历整个文件?

我的代码段:

void readFromCSV(const QString &filename){

    int line_count=0;
    QString line;           

    QFile file(filename); 
    if(!file.open(QFile::ReadOnly | QFile::Text))
        return;

    QTextStream in(&file);

    while(!in.atEnd()){                             //First loop
        line = in.readLine();           
        line_count++;
    }

    while (!in.atEnd()) {                           //Second loop
        ...
        line = in.readLine();
        process();
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

这个问题与这里的问题不同:计算文本文件中的行数

1)循环过程已经完成。在这种情况下,可以防止双重射击。

2)该代码是QT代码,而不是作为冗余添加的C ++功能

qt qfile

2
推荐指数
1
解决办法
340
查看次数