小编Ric*_*ick的帖子

如何使用 Qt 在代码中访问升级小部件的 UI 元素?

所以我创建了一个类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)

c++ qt qt-designer qt5

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

如何加快解析大字符串?

所以我制作了一个读取各种配置文件的程序.其中一些配置文件可能很小,有些可能是半大的(最大的一个是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)

c++ c++11

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

字符串中的外语C++

我正在开发一种多语言软件(第一次使用除英语之外的任何其他语言).

我已经制作了读取多个本地化文件的代码,然后用户选择了他们的语言,并使用了本地化文件.

这一切都很好,花花公子,但当我尝试显示外语(如韩语)的符号时,它没有显示正确的符号.

我需要做些什么特别的事情来将中文,韩文,日文等存储到字符串中吗?我的一个韩国本地化文件看起来像这样....

[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)

c++

0
推荐指数
1
解决办法
416
查看次数

标签 统计

c++ ×3

c++11 ×1

qt ×1

qt-designer ×1

qt5 ×1