小编fee*_*0de的帖子

如何在QTextEdit中点击链接?

有没有办法让链接可以点击QTextEdit

我知道我可以使用QTextBrowser和连接anchorClicked但我宁愿在一个小部件中保持编辑和查看,并且当我将小部件设置为只读模式时具有可单击的链接.

这是可能的还是我坚持在堆栈中有两个单独的小部件并在它们之间切换?

qt text hyperlink qtextedit qtextbrowser

14
推荐指数
1
解决办法
7666
查看次数

为什么每个C++平台都有不同的字符串类?

虽然我喜欢用C++编程,但我讨厌这样的想法: 这个类不满足这些框架的需求吗?我的意思是班上有什么问题?!
std::basic_string vs QString vs wxString vs .............
standard stringstandard string

只是要强调,下面是一个重要的问题:
你是否在你将要使用的每个框架中学习框架的"字符串"?您是否会通过尝试在任何地方进行调整来坚持标准字符串类?

谢谢...

c++ string frameworks

13
推荐指数
4
解决办法
1818
查看次数

Qt Quick是为C++应用程序构建现代GUI的方法吗?

经过4年的缺席,我终于再次回到Qt开发.我对它所经历的发展印象深刻,但也有点被Qt Quick搞砸了,后者刚刚在Qt 4.7中引入

对我来说,似乎需要在Java Script中使用一些逻辑构建一个快速,吸引人的GUI.但是,如果我要构建一个C++应用程序,Qt Quick是否也是为此构建GUI的现代方法,还是应该通过使用这些.ui文件来遵循经典路径?

qt qt-creator qt-quick

13
推荐指数
2
解决办法
3555
查看次数

Qt - 如何同时录制和播放声音

我在Qt论坛上发布了这个问题,但没有得到答案.这就是我在这里发布它的原因.

我想知道有没有办法在Qt同时录制和播放声音.我想录制麦克风的声音,同时我想在扬声器/耳机中播放声音.

在Qt有什么办法吗?或者我需要使用任何其他库吗?

如果解决方案是跨平台的(我需要覆盖windows,linux和mac),那将是很棒的.如果不可能,那么Linux解决方案就可以了.

我顺便使用Qt 4.7.

编辑

我的最新实施在这里给出.我创建了QIODevice的子类并重新实现了writeDatareadData方法,以便可以使用循环缓冲区进行读写.我按照这个建议做了这个.此代码也不起作用,因为QAudioOutput实例面临Underrun Error,根据此文档意味着 -

音频数据没有以足够快的速率馈送到音频设备

我已经应用了一个黑客来暂时解决这个问题.在该outputStateChanged方法中,我正在检查输出的状态是否已更改为IDLE,如果有,我再次调用start()方法,指定公共缓冲区.我不想将此作为永久解决方案,因为它感觉非常hacky,因为我在没有正确调查其原因的情况下吞下错误.

我该怎么做才能解决这个问题?

我也试图用Phonon来解决这个问题,但是因为我对这个模块没有足够的了解而失败了.

c++ qt4

13
推荐指数
1
解决办法
6236
查看次数

更改QProgressBar的颜色

我正在运行ubuntu 11.04.这就是我的进度条的样子:

进度条

我在批处理窗口中显示进度条(每批项目一个),并希望将它们用作状态指示器(绿色表示一切顺利,红色表示错误,......).

我已经尝试了几个建议,包括对这个几乎相同的问题所做的建议.不幸的是,我无法使它工作,关于定制QProgressBars 的文档对我也没有帮助,所以我非常感谢任何关于我做错的建议.

我按照建议将QProgressBar子类化,并尝试使用样式表和调色板(不是同时但作为替代).使用样式表,我不能使它看起来像常规进度条.改变颜色实际上就是我想做的事情,所以我认为通过使用调色板而不是样式表可以更容易做到这一点,但是调色板根本不会发生任何事情.

这是我为调色板尝试过的一个版本:

#include "myprogressbar.h"

#include <QtGui/QPalette>

MyProgressBar::MyProgressBar(QWidget *parent) :
    QProgressBar(parent)
{}

void MyProgressBar::onProgress(int value, int maximum, QString phase)
{
    setMaximum(maximum);
    setValue(value);
    setFormat(phase);

    QPalette p = this->palette();
    p.setColor(QPalette::Highlight, QColor(Qt::green));
    this->setPalette(p);
}

...
Run Code Online (Sandbox Code Playgroud)

我也试过这里建议的版本,但这也没有帮助.

c++ qt qprogressbar

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

qtextedit - 调整大小以适应

我有一个QTextEdit充当"显示器"(可编辑为假).它显示的文字是自动换行的.现在我希望设置此文本框的高度,以便文本完全适合(同时也尊重最大高度).

基本上布局下面的小部件(在相同的垂直布局中)应该获得尽可能多的空间.

如何才能最轻松地实现这一目标?

c++ qt qtextedit

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

Qt:无法在QMainWindow中设置布局

我想setLayout()在我的主窗口中设置我的布局(使用).它在发布时没有显示任何内容:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0)
    {
        QVBoxLayout *vBoxLayout = new QVBoxLayout;
        {
            QPushButton *pushButton = new QPushButton(tr("A button"));
            vBoxLayout->addWidget(pushButton);
        }
        setLayout(vBoxLayout);
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

如何从QChartView或QChart中删除边距

所有Qt图表似乎都有边距和圆角.

带红色标记边框的示例图像

如何删除?

我希望白色区域填满整个对话框.我在Qt文档中找不到任何信息.我找到了一个没有这个间距的示例的屏幕截图.但我找不到禁用它的代码.

我的初始化代码如下所示:

QPieSeries *series = new QPieSeries();
series->append("Jane", 1);
series->append("Joe", 2);
series->append("Andy", 3);
series->append("Barbara", 4);
series->append("Axel", 5);

QChart *chart = new QChart();
chart->addSeries(series);

QChartView *chartView = new QChartView(chart);
chartView->setBackgroundBrush(Qt::red);
chartView->setRenderHint(QPainter::Antialiasing);

QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.show();
Run Code Online (Sandbox Code Playgroud)

qt qtcharts

13
推荐指数
2
解决办法
5384
查看次数

用Qt显示WebCam视频

我在Linux Gnome(Ubuntu 9.04)上使用Qt 4.5(2009.03),并希望在我的Qt应用程序的Phonon :: VideoWidget中显示我的网络摄像头捕获的视频.

我有第一个使用v4l2 API的实现,我在那里进行YUV2到RGB的转换并填充我自己的QImage.它运作良好,但效率不高.一位同事使用gStreamer做同样的事情,而且速度要快得多.

从那时起,我发现了声子,并想使用它.除了绑定到网络摄像头设备作为源之外,所有内容都已配置和设置.

我应该创建一个MediaSource对象,但我不知道如何配置它.任何帮助都将非常有价值.

编辑:Phonon概述解释说它尚不支持.但我需要一个解决方案.

linux webcam qt phonon

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

Qt GUI app:QObject :: connect()失败时会发出警告吗?

我最近将我的Qt项目从Linux迁移到Vista,现在我盲目地调试信号.

在Linux上,如果QObject :: connect()在调试版本中失败,我会在stderr上收到警告消息.在Windows上,GUI应用程序没有控制台输出,只有OutputDebugString调用.

我已经安装了DebugView,它很好地捕获了我自己的qDebug()输出,但仍然没有警告失败的信号.

一种可能的解决方案是使用QtCreator的自动完成信号,但我喜欢Eclipse,并且使用两者都是PITA.有关如何在运行时获取信号/插槽信息的任何想法?

编辑:我刚刚实现connect()返回bool,它解决了直接的问题,可能是丑陋的.但是,这并不能解决QMetaObject :: connectSlotsByName()失败的情况,而且这个小部件会自动运行.

c++ qt signals-slots

10
推荐指数
1
解决办法
3608
查看次数