我有一个主窗口与在QToolBar,QWidget的和QTabWidget.布局是"网格".但是,我的窗口可以调整大小,因为我有一个布局,它运行良好.但是有一个问题,在我的QTabWidget中我有一个带有两列的QTableWidget(布局也是"Grid").如果我调整整个窗口的大小,QTableWidget会调整大小,但不会调整列.
例如,每当我调整窗口大小时,我的QTabWidget也会调整其大小和QTableWidget.只有我的QTableWidget中的列不会.
那么......如果我的QTableWidget调整大小,我怎么能调整它们的大小呢?
我想知道专业程序员如何创建自己的编程语言.
他们是否只创建一个编译器来读取文本文件并从中生成可执行文件(考虑到没有语法错误等)?
我不打算创建自己的编程语言(我显然对此没有经验),我只想知道他们是如何做到的.
我做了一个返回a的函数QString.在我的函数中的某些点它应该返回一个空的QString.
刚回来""不起作用.当我使用QString::isEmpty()它时不是.我的"应急计划"是返回一个"空"字符串并检查文本是否为"空".但我不认为那是好风格.
那我怎么回空QString?
每当我尝试将一个字母转换std::string成一个QString字母(' ß '),QString就会变成像" Ã "或其他一些非常奇怪的字母.怎么了?我使用了这段代码并没有引起任何错误或警告!
std::string content = "Heißes Teil.";
ui->txtFind_lang->setText(QString::fromStdString(content));
Run Code Online (Sandbox Code Playgroud)
在std::string与这个角色没有问题.我甚至把它写成文本文件没有问题.那么我做错了什么?
昨天我在自制的"strcpy"功能上遇到了一些麻烦.虽然现在有效,但我有点困惑!
char* a = "Hello, World!"; //Works
char b[] = "Hello, World!"; //Works also
strcpy(a, "Hello!"); //Segmentation fault
strcpy(b, "Haha!!"); //Works..
Run Code Online (Sandbox Code Playgroud)
区别在哪里?为什么char指针会导致"分段错误"?
为什么这甚至有效?:
char* a = "Haha"; //works
a = "LOL"; //works..
Run Code Online (Sandbox Code Playgroud) 昨天我的老师告诉我不要使用指针,除非我想编写一些非常低级的东西.他说垃圾收集器会为我做一切,所以指针基本上是无效和危险的.我很生气,因为我之前听说过这种差异.
什么是对的,什么是错的?我应该使用指针吗?如果没有,为什么他们甚至没有人使用它?
每当我在 QTextEdit 中按下 Enter 键时,它都会点击我的登录按钮。不知何故,这会导致我的 QtCreator 崩溃。如果我在 QTextEdit 中按 Enter,我该如何更改会发生什么?
如何创建计时器?类似于 Visual Basic 中的计时器;您设置了一个间隔,如果启用了计时器,它会一直等到时间到。
我不想使用现有的库,因为我想知道它是如何工作的。
所以..我只是希望有人能解释我定时器是如何工作的,也许给我一个代码示例来创建我自己的代码 - 如果它不是太先进。
编辑:我想为 linux 系统创建一个。
我只是练习了一点,并尝试使用冒泡排序算法对数组进行排序。编译器没有给我任何警告或错误,它运行良好!首先,您输入 10 次数字,然后程序对它们进行排序并打印它们。
代码:
#include <iostream>
using namespace std;
void arr_sort(int* array, const int arr_size){
int temp = 0; //Temporary integer to store (if necessary) the current element
int end = 0; //Run time condition
while(end++ != arr_size){ // Will loop max. 10 times
for(int i = 0; i < arr_size; i++){
if(array[i] > array[i + 1]){ //If the current element
temp = array[i]; //is bigger than the next
array[i] = array[i + 1];//Change the positions
array[i + 1] = …Run Code Online (Sandbox Code Playgroud) 我在班上创建了一个函数.我将所有声明放在头文件中,并将所有定义放在我的.cpp中.
在我的标题中:
class FileReader{
public:
FileReader(const char*); //Constructor
std::string trim(std::string string_to_trim, const char trim_char = '=');
};
Run Code Online (Sandbox Code Playgroud)
在我的.cpp中:
std::string FileReader::trim(std::string string_to_trim, const char trim_char = '='){
std::string _return;
for(unsigned int i = 0;i < string_to_trim.length();i++){
if(string_to_trim[i] == trim_char)
continue;
else
_return += string_to_trim[i];
}
return _return;
}
Run Code Online (Sandbox Code Playgroud)
每当我尝试编译并运行它时,我都会遇到两个错误.
错误:为'std :: string FileReader :: trim(std :: string,char)'[-fpermissive]的参数2给出的默认参数
错误:在'std :: string FileReader :: trim(std :: string,char)'[-fpermissive]中的先前规范之后
我究竟做错了什么?我只是希望我的函数有这个默认参数.