我正在编写从QTextEdit类派生的复杂的富文本编辑器.它必须能够插入,调整大小并将各种格式应用于嵌入式表.
我找到了设置列宽度的函数(setColumnWidthConstraints).但没有人可以change _rows_ heights.
有没有办法实现这个目标?
示例代码:
void CustomTextEdit::insertTable (int rows_cnt, int columns_cnt)
{
QTextCursor cursor = textCursor ();
QTextTableFormat table_format;
table_format.setCellPadding (5);
// TODO: This call just changed the frame border height, not table itself.
//table_format.setHeight (50);
// Setup columns widths - all is working perfectly.
QVector <QTextLength> col_widths;
for (int i = 0; i < columns_cnt; ++i)
col_widths << QTextLength (QTextLength::PercentageLength, 100.0 / columns_cnt);
table_format.setColumnWidthConstraints (col_widths);
// ...But there is no similar function …Run Code Online (Sandbox Code Playgroud) 模块中有一个QSvgRenderer类QtSvg可以渲染图像QPaintDevice.这个可以QImage.在这种情况下,我们将创建:
Image svgBufferImage(renderer.defaultSize(), QImage::Format_ARGB32);
Run Code Online (Sandbox Code Playgroud)
但是如何QImage从SVG渲染器渲染到与默认大小不同的大小?由于SVG格式图像可以在没有质量损失的情况下进行缩放,是否可以使用QSvgRenderer?生成SVG文件中的静态图像,如PNG .
有没有人有更好的主意?基本上我需要从不同大小的SVG文件创建像PNG这样的图像.
在C#中,它告诉我如何没有返回浮点数的"Math.Cos"函数.双精度是你可以获得的唯一值,因此强迫你将它投射到浮点数.像这样:
float val = (float)Math.Cos(someVal);
我需要使用浮点数,因为我在Direct3D中做了严格使用浮点数的东西.浮点数在图形世界中更常见(因为它现在是),因为它们是32位.
C#中是否有任何功能我可以使用它只是简单地处理浮点数,如C++可以做?
我不想包装任何C++的东西,因为这需要在XNA和Linux上运行OpenGL.
注意:如果代码没有将double转换为float,那将会很不错.
我有Document代表自定义文档的线程安全类.它有getter(const函数)和setter来修改它的状态.所有这些函数都受互斥保护,以保证在完全执行该方法之前文档不会更改.
但由于QMutex使用,我无法将状态访问功能标记为const不mutable使用.捕捉QMutex改变它的状态.
这段代码是正确的,还是可以用更好的方式编写?没有hacky mutable使用.
class Document
{
// This method should be const: it changes only mutex
// and don't touch document state
bool IsCorrect() const;
...
mutable QMutex m_lock;
};
bool Document::IsCorrect() const
{
// Capturing mutex object change it!
QMutexLocker lock( &m_lock );
... Const-aware code
bool result = ( m_context != NULL );
...
return result;
}
Run Code Online (Sandbox Code Playgroud) 如何计算两个矩形之间的最小距离?
对于没有角度(即0一度)的矩形来说很容易,但对于任何不同角度的旋转矩形我都不知道该怎么做.
你能推荐一下吗?
WhiteFlare
我已经google了很多,但仍然找不到好的解决方案:/
所以,我将一个复杂的Qt5应用程序(某些网络服务的客户端)移植到Mac OS X(10.7.0"Lion"及更高版本).
我需要处理自定义文件*.xyz和自定义URL方案xyz://.
好的,Qt5有QFileOpenEvent类来处理OS X适当的事件.
但是:此事件仅在应用程序事件循环开始后才会到达(显然)!
我需要"捕获"并在 main启动之前处理OS X'文件打开事件,因为程序逻辑仅用于处理命令行参数处理.
简化的main功能代码:
int main(int argc, char[]* argv)
{
QApplication app( argc, argv );
QStringList arguments = app.arguments();
if( arguments.count() == argc ) arguments.removeFirst();
Logic appLogic( NULL, &app );
app.installMessageHandler( &appLogic );
// The problem:
// **This function will always called earlier than the any event**
if( ! appLogic.start( arguments ) ) return 0;
// Start processing of …Run Code Online (Sandbox Code Playgroud) 我还在和Qt的qmake模糊语法作斗争.
现在我找不到一种方法来描述可以包含括号的函数参数(例如regex):
functionName(arg1, "arg2", ^(arg3)+$)
Run Code Online (Sandbox Code Playgroud)
我试图像这样描述函数调用:
FunctionCall = Identifier space* "(" space* FunctionArgumentList? space* ")" space* eol*
FunctionArgumentList = FunctionArgumentString ((space* "," space* FunctionArgumentString)* / (blank* FunctionArgumentString)*)
FunctionArgumentString = ReplaceFunctionCall / TestFunctionCall / EnquotedString / RegularFunctionArgumentString
RegularFunctionArgumentString = RegularFunctionArgumentStringChar+
RegularFunctionArgumentStringChar = !(")" / blank / "," / quote / doublequote) SourceCharacter
SourceCharacter <- [\u0000-\uFFFC]
Run Code Online (Sandbox Code Playgroud)
如何在这种语法中添加对嵌入式括号的支持而不使用引号/双引号?如何区分函数参数和函数关闭中的括号?
有效函数调用示例:
contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*)
Run Code Online (Sandbox Code Playgroud) 此类qmake项目 (*.pro) 代码在 Ubuntu Linux 下成功运行,但在 Windows 8 下则不能:
win32 {
BUILD_TIME = $$system ("time /T")
}
else
{
BUILD_TIME = $$system ("time")
}
message($$BUILD_TIME) # output the current time
Run Code Online (Sandbox Code Playgroud)
输出是“time /T”,即命令本身而不是命令执行值。这种行为是错误,还是只是我做错了?:)
UPD:我找到了另一种获取当前日期的方法:$$_DATE_。但是,我不喜欢使用未记录的功能 - 这是个坏主意。
PS 我的目标只是生成唯一的构建 ID 字符串。我正在使用 Qt 4.8.5。
您好我是C++的新手,我试图创建一个带有两个复数的程序,对它们进行优化并返回总和.
我打算做的是将两个元组发送到一个函数并返回一个元组.
typedef tuple<float, float> complex_tuple;
complex_tuple a_tuple(a, b);
complex_tuple b_tuple(c, d);
cout << sum(a_tuple, b_tuple);
Run Code Online (Sandbox Code Playgroud)
这是我的功能:
tuple<float,float> sum(tuple<float, float>a, tuple<float, float>b){
float a_real= get<0>(a);
float a_imag= get<1>(a);
float b_real= get<0>(b);
float b_imag= get<1>(b);
return tuple<float, float>(a_real+b_real, a_imag+b_imag);
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
0.cc:28:31: Error: no match for "operator<<" in "std::cout << sum(std::tuple<float, float>, std::tuple<float, float>)(b_tuple)"
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
iOS/OS X 应用程序名称通常包含空格(如“App Store.app”)。但是当我尝试在我的 Qt/ios 项目中使用这样的名称时:
ios: TARGET = "My Cool App"
Run Code Online (Sandbox Code Playgroud)
构建过程因 Qt Bash 脚本自动生成的奇怪错误而失败。
我做错了什么,还是不支持名称中的此类空格?
UPD 问题第一次出现在 qmake 生成的 shell 脚本中:
#!/bin/sh
cp -r $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME /Users/eraxillan/Projects/<PROJECT_DIR>
Run Code Online (Sandbox Code Playgroud)
如果$FULL_PRODUCT_NAME包含空格,则脚本将失败。
仅在自定义DESTDIR项目变量值的情况下生成和执行脚本- 我的情况。
因此,看起来像是qmake-generated 脚本中的一个错误,用于将项目构建工件复制到自定义输出目录。
解决方法:
DESTDIR值希望这会有所帮助
正如我从 Qt 文档(QKeySequence,Qt全局命名空间)中了解到的,我不能使用 notebookFn键作为快捷方式修饰符。
Qt 知道的唯一修饰符是:Shift, Control, Alt, Meta。但是没有Fn!
但可能存在一些hacky方式?比如Fn直接指定代码。
代码:
m_actionGoToFirstPage->setShortcut( QKeySequence( Qt::Key_Up /*| Qt::Fn ???*/ ) );
Run Code Online (Sandbox Code Playgroud) FILE * in;
in = fopen("file1.bmp", "rb");
if (in == NULL) {
perror("file1.bmp");
return ;
}
Run Code Online (Sandbox Code Playgroud)
为什么我无法打开*.bmp文件.fopen()返回NULL.
任何人都可以帮助我如何成功打开BMP文件.我应该使用其他一些C++函数.如果是的话,请告诉我.一个例子非常有用.我在VS2008中使用VC++.
提前致谢.
我想验证用户指定的版本字符串 - 以确保它包含三个以句点分隔的数字(e.g. 1.20.300).
但我不知道如何编写这样的正则表达式,下面的代码只是一个尝试:
if( PROJECT_VERSION MATCHES "([0-9]+).([0-9]+).([0-9+])" )
message( "NOTE: Valid version string" )
else()
message( FATAL_ERROR "Invalid version string" )
endif()
Run Code Online (Sandbox Code Playgroud)
那么,如何正确编写所需的正则表达式?
谢谢.
UPD
我的正则表达式也匹配1.2.3.4,但不应该!
只有三个以周期分隔的数字是可能的.
qt ×6
c++ ×5
qmake ×2
.net ×1
bash ×1
bmp ×1
build ×1
c ×1
c# ×1
c++11 ×1
cmake ×1
const ×1
double ×1
events ×1
file-io ×1
fopen ×1
function ×1
geometry ×1
grammar ×1
image ×1
ios ×1
javascript ×1
macos ×1
math ×1
parsing ×1
peg ×1
pegjs ×1
qmutex ×1
qt-creator ×1
qt4 ×1
qt5 ×1
qtextedit ×1
regex ×1
svg ×1
tuples ×1
typedef ×1
visual-c++ ×1