有没有办法让链接可以点击QTextEdit?
我知道我可以使用QTextBrowser和连接anchorClicked但我宁愿在一个小部件中保持编辑和查看,并且当我将小部件设置为只读模式时具有可单击的链接.
这是可能的还是我坚持在堆栈中有两个单独的小部件并在它们之间切换?
虽然我喜欢用C++编程,但我讨厌这样的想法:
这个类不满足这些框架的需求吗?我的意思是班上有什么问题?!
std::basic_string vs QString vs wxString vs .............standard stringstandard string
只是要强调,下面是一个重要的问题:
你是否在你将要使用的每个框架中学习框架的"字符串"?您是否会通过尝试在任何地方进行调整来坚持标准字符串类?
谢谢...
经过4年的缺席,我终于再次回到Qt开发.我对它所经历的发展印象深刻,但也有点被Qt Quick搞砸了,后者刚刚在Qt 4.7中引入
对我来说,似乎需要在Java Script中使用一些逻辑构建一个快速,吸引人的GUI.但是,如果我要构建一个C++应用程序,Qt Quick是否也是为此构建GUI的现代方法,还是应该通过使用这些.ui文件来遵循经典路径?
我在Qt论坛上发布了这个问题,但没有得到答案.这就是我在这里发布它的原因.
我想知道有没有办法在Qt同时录制和播放声音.我想录制麦克风的声音,同时我想在扬声器/耳机中播放声音.
在Qt有什么办法吗?或者我需要使用任何其他库吗?
如果解决方案是跨平台的(我需要覆盖windows,linux和mac),那将是很棒的.如果不可能,那么Linux解决方案就可以了.
我顺便使用Qt 4.7.
编辑
我的最新实施在这里给出.我创建了QIODevice的子类并重新实现了writeData和readData方法,以便可以使用循环缓冲区进行读写.我按照这个建议做了这个.此代码也不起作用,因为QAudioOutput实例面临Underrun Error,根据此文档意味着 -
音频数据没有以足够快的速率馈送到音频设备
我已经应用了一个黑客来暂时解决这个问题.在该outputStateChanged方法中,我正在检查输出的状态是否已更改为IDLE,如果有,我再次调用start()方法,指定公共缓冲区.我不想将此作为永久解决方案,因为它感觉非常hacky,因为我在没有正确调查其原因的情况下吞下错误.
我该怎么做才能解决这个问题?
我也试图用Phonon来解决这个问题,但是因为我对这个模块没有足够的了解而失败了.
我正在运行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)
我也试过这里建议的版本,但这也没有帮助.
我有一个QTextEdit充当"显示器"(可编辑为假).它显示的文字是自动换行的.现在我希望设置此文本框的高度,以便文本完全适合(同时也尊重最大高度).
基本上布局下面的小部件(在相同的垂直布局中)应该获得尽可能多的空间.
如何才能最轻松地实现这一目标?
我想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) 所有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) 我在Linux Gnome(Ubuntu 9.04)上使用Qt 4.5(2009.03),并希望在我的Qt应用程序的Phonon :: VideoWidget中显示我的网络摄像头捕获的视频.
我有第一个使用v4l2 API的实现,我在那里进行YUV2到RGB的转换并填充我自己的QImage.它运作良好,但效率不高.一位同事使用gStreamer做同样的事情,而且速度要快得多.
从那时起,我发现了声子,并想使用它.除了绑定到网络摄像头设备作为源之外,所有内容都已配置和设置.
我应该创建一个MediaSource对象,但我不知道如何配置它.任何帮助都将非常有价值.
编辑:Phonon概述解释说它尚不支持.但我需要一个解决方案.
我最近将我的Qt项目从Linux迁移到Vista,现在我盲目地调试信号.
在Linux上,如果QObject :: connect()在调试版本中失败,我会在stderr上收到警告消息.在Windows上,GUI应用程序没有控制台输出,只有OutputDebugString调用.
我已经安装了DebugView,它很好地捕获了我自己的qDebug()输出,但仍然没有警告失败的信号.
一种可能的解决方案是使用QtCreator的自动完成信号,但我喜欢Eclipse,并且使用两者都是PITA.有关如何在运行时获取信号/插槽信息的任何想法?
编辑:我刚刚实现connect()返回bool,它解决了直接的问题,可能是丑陋的.但是,这并不能解决QMetaObject :: connectSlotsByName()失败的情况,而且这个小部件会自动运行.
qt ×8
c++ ×6
qtextedit ×2
frameworks ×1
hyperlink ×1
linux ×1
phonon ×1
qprogressbar ×1
qt-creator ×1
qt-quick ×1
qt4 ×1
qtcharts ×1
qtextbrowser ×1
string ×1
text ×1
webcam ×1