所以我创建了一个类DemoPromotedWidget,它继承自QWidget。
然后,我在设计器中创建了一个小部件,向所述小部件添加了一个名为 DemoLabel 的标签,并将该小部件提升为 DemoPromotedWidget 类...然后我将其移动到我的工具箱中,它现在位于“Scratchpad”下。
通常,使用 Qt 的设计器,我可以访问 UI 文件中相应类文件中的任何元素。但是,在 DemoPromotedWidget 中我不能。
无论如何,我是否可以访问 DemoPromotedWidget 内的 DemoLabel,以便我可以调用类似...
ui->DemoPromotedWidget->setText("Updated Text");
Run Code Online (Sandbox Code Playgroud)
这是我的 UI 设计器的图片,其中已添加 DemoPromotedWidget。 https://i.stack.imgur.com/l7cLX.png
DemoPromotedWidget.h
#ifndef DEMOPROMOTEDWIDGET_H
#define DEMOPROMOTEDWIDGET_H
#include <QWidget>
class DemoPromotedWidget : public QWidget
{
Q_OBJECT
public:
explicit DemoPromotedWidget(QWidget *parent = nullptr);
signals:
public slots:
};
#endif // DEMOPROMOTEDWIDGET_H
Run Code Online (Sandbox Code Playgroud)
DemoPromotedWidget.cpp
#include "demopromotedwidget.h"
DemoPromotedWidget::DemoPromotedWidget(QWidget *parent) : QWidget(parent)
{
// How do I access DemoPromotedWidget->DemoLabel->setText()?????????????????????
}
Run Code Online (Sandbox Code Playgroud)
这是我的 mainwindow.ui...
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect> …Run Code Online (Sandbox Code Playgroud) 所以我制作了一个读取各种配置文件的程序.其中一些配置文件可能很小,有些可能是半大的(最大的一个是3,844 KB).
读入文件存储在一个字符串中(在它下面的程序中称为sample).
然后,我根据各种格式规则从字符串中提取程序信息.这很好用,唯一的问题是,当读取较大的文件时,它非常慢....
我想知道是否有任何我可以做的事情来加速解析,或者是否有一个现有的库可以完成我需要的工作(提取字符串,直到在同一级别的2个分隔符之间的分隔符和提取字符串字符串).任何援助都会很棒.
这是我的代码和它应该如何工作的样本......
#include "stdafx.h"
#include <string>
#include <vector>
std::string ExtractStringUntilDelimiter(
std::string& original_string,
const std::string& delimiter,
const int delimiters_to_skip = 1)
{
std::string needle = "";
if (original_string.find(delimiter) != std::string::npos)
{
int total_found = 0;
auto occurance_index = static_cast<size_t>(-1);
while (total_found != delimiters_to_skip)
{
occurance_index = original_string.find(delimiter);
if (occurance_index != std::string::npos)
{
needle = original_string.substr(0, occurance_index);
total_found++;
}
else
{
break;
}
}
// Remove the found string from the original string...
original_string.erase(0, occurance_index + 1);
} …Run Code Online (Sandbox Code Playgroud) 我正在开发一种多语言软件(第一次使用除英语之外的任何其他语言).
我已经制作了读取多个本地化文件的代码,然后用户选择了他们的语言,并使用了本地化文件.
这一切都很好,花花公子,但当我尝试显示外语(如韩语)的符号时,它没有显示正确的符号.
我需要做些什么特别的事情来将中文,韩文,日文等存储到字符串中吗?我的一个韩国本地化文件看起来像这样....
[Labels]
Username=??? ??
Password=??
Run Code Online (Sandbox Code Playgroud)
所以在我的代码中我有一个函数可以得到像这样的指定字符串...
const std::string& UsernameLabel = GetLocalizationString("Korean", "Labels", "Username");
const std::string& PasswordLabel = GetLocalizationString("Korean", "Labels", "Password");
Run Code Online (Sandbox Code Playgroud)