RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-397794

Сергей Малышев's questions

Martin Hope
Сергей Малышев
Asked: 2020-10-01 20:20:20 +0000 UTC

在 Qt C++ 中处理文件

  • 1

我在我的程序中写了这个日志轮换。

QFileInfo log("log.txt");
int currentM = QDate::currentDate().month();
int createM = log.created().toString("MM").toInt();
if (createM != 0)
{
    if (currentM > createM)
    {
        char oldn[] = "log.txt";
        char newn[] = "oldlog.txt";
        QFile::remove(newn);
        QFile::rename(oldn, newn);
    }
}
fileDebug = fopen("log.txt", "a+t");
fprintf(fileDebug, %s Log started\n, QDateTime:: currentDateTime().toString("hh:mm:ss dd.MM.yyyy").toLocal8Bit().constData());
qInstallMessageHandler(myMessageOutput);

每个月写入的日志都会重命名为 oldlog,在此之前旧的 oldlog 会被删除。然后程序创建一个名为 log 的新文件并写入它。

问题是新的 log.txt 文件是用旧日志的创建日期创建的,我不知道为什么。

同时,如果两个日志都被删除 - 旧的和新的 - 即程序将没有什么可删除和重命名的,它将创建一个具有正常创建日期的新日志。

检查删除和重命名工作是否准确。我尝试在收到日期后立即添加 QFileInfo 类的析构函数 - 它没有帮助。

为什么程序会这样做?如何强制它创建具有真实创建日期的文件?

c++
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-09-03 22:36:08 +0000 UTC

如何在android的屏幕上正确显示文本?

  • 0

我正在学习用 Java 开发应用程序。假设我的应用程序需要在屏幕上显示一个数字。为此,在屏幕上创建了一个对象,并在代码中将变量的值分配给它。起初,除了GameActivity.java(acrivity_game.xml我为其创建的代码)之外,我没有去任何地方,并且这些操作在那里完成如下:

TextView textObjectPartA;
TextView textObjectPartB;

TextView textObjectPartA = (TextView)findViewById(R.id.textPartA);
TextView textObjectPartB = (TextView)findViewById(R.id.textPartB);

int partA = randInt.nextInt(numberRange);
partA++;
int partB = randInt.nextInt(numberRange);
partB++;

textObjectPartA.setText(""+partA);
textObjectPartB.setText(""+partB);

启动应用程序并打开它时,调试器给出以下错误

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

我在这里观看了对问题的讨论,并按照答案中的说明进行了操作:

字符串.xml 文件

<string name="part_a">part a value = %1$d.</string>
<string name="part_b">part b value = %1$d.</string>

activity_game.xml 文件

<TextView
        android:id="@+id/textPartB"
        android:text="@string/part_b"
...
<TextView
        android:id="@+id/textPartA"
        android:text="@string/part_a"

游戏活动.java

 Resources res = getResources();
        String partA_text = String.format(res.getString(R.string.part_a), partA);
        textObjectPartA.setText(partA_text);
        String partB_text = String.format(res.getString(R.string.part_b), partB);
        textObjectPartB.setText(partB_text);

我也尝试了一个简单的解决方案 - 只需写

textObjectPartA.setText(String.valueOf(partA));
textObjectPartB.setText(String.valueOf(partB));

这个错误不会消失。尝试加载此 Activity 时程序也会崩溃。我究竟做错了什么?

java
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-09-03 18:18:48 +0000 UTC

Qmake 和重建所有

  • 3

请解释这些按钮如何在 Qtcreator 中工作。

我在几个指南中读到 qmake 执行 pro 文件。这些文件描述了如何将项目组装成工作程序(粗略地说)。关于重建所有我在任何地方都没有看到任何信息。

我在我的电脑上测试了很多次,发现 Rebuild All 完成了 pro 文件中编写的所有内容,除了功能。而 qmake 只执行功能。我是否正确理解这一点,还是取决于某些设置?是否可以将其配置为使用单个按钮执行两个操作?

每个按钮的具体作用是什么?在网上,这方面的信息很模糊,好像大家都知道一样,不言而喻。

示例:该项目有一个文件 iss_generator.pri。它连接到pro文件如下。

include(iss_generator.pri)

这是此文件的代码。

iss_file = $$DeployDir/install.iss

iss ="Здесь большой текст этого файла"

write_file($$iss_file, iss)

该文件仅使用 qmake 出现在文件夹中。在构建期间不出现。

qtcreator
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-08-27 14:37:11 +0000 UTC

在 Qt 上使用注册表

  • 2

使用Qt 5.6.1 C++ 一般情况下,我需要先检查后更改某个参数的现有值。但首先我决定尝试创建一个带值的参数。经过对 Qt 类的长期研究,我编写了以下代码:

QSettings checkinst("HKEY_LOCAL_MACHINE\\SOFTWARE\\MYPROGRAMM", QSettings::NativeFormat);
checkinst.setValue("JustUpdated", 20);

程序编译没有错误。第一行写的路径存在,启动程序前没有这个参数。然后我运行程序,执行给定的代码。但是,此参数不会出现在注册表中。为什么?我究竟做错了什么?

更新。我读取参数并显示它,显示我设置的值,但我在注册表中没有看到它。地址好像有问题,我不知道是什么...

更新2。我想对我创建的参数进行注册表搜索。他被发现了!但以一种完全模糊的方式:

HKEY_CLASSES_ROOT\VirtualStore\Machine\Software\Wow6432Node\Myprogram

这条路是什么,从哪里来的?我毕竟指定了其他方式。

c++
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-08-18 14:51:34 +0000 UTC

如何在安装后启动和正常启动时设置不同的程序操作?

  • 0

该程序在任何开始时都有一定的行为。有必要确保在重新安装或更新后启动程序时,此行为是不同的,与正常启动期间不同(如果在当前启动和更新/重新安装之间有更多启动)。在这种情况下,更新是在已安装程序的计算机上启动安装程序。

我决定在程序安装程序中添加一个空白文件,该文件将被解压缩到程序文件夹中。启动时,程序会检查此文件是否存在。如果是,则在更新/重新安装后执行必要的操作,然后删除空白文件。这样,下次程序启动时,就找不到这个文件了,在此基础上就知道已经启动了,照常行事。

但它不起作用 - 这完全与管理员权限有关。该程序由计算机管理员安装,普通用户使用它,因此安装的程序还没有管理员权限。事实证明,具有管理员权限的安装程序可以在包含该程序的文件夹中创建此文件。但是程序无法删除它,因为它安装在只有管理员可以访问的 Program Files 文件夹中。

为此,该程序可以使用给定用户的文件。看起来您可以通过安装程序在 Appdat'e 中创建此文件,然后使用程序将其删除。但是,安装程序无权访问用户文件夹,只能对管理员文件夹执行所有操作。

此外,不可能预先确定该程序将为哪个用户安装。这意味着无法为安装程序提供 Appdat 的绝对路径。

还有什么其他方法可以使程序在安装/更新后不执行与正常启动期间相同的操作。

该程序是用 Qt 编写的。使用的安装程序是 Inno Setup Compiller。操作系统视窗 10。

c++
  • 2 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-07-19 19:45:27 +0000 UTC

无法让点击库工作

  • 0

有这个代码:

import click

@click.group()
def cli():
    pass

@cli.command("stats")
@click.argument("lat")
def stats_cli(lat):
    click.echo(f"{lat}")

写来检查它是如何工作的。我知道 Click 本身在文件运行时会生成指令。理论上我应该在终端用这段代码运行文件,他会写指令给我。但这不会发生。他根本不写。通过命令运行文件时

(venv) D:\Documents\weather>python weather\cli\cli.py

终端只是下降一行并再次写入

(venv) D:\Documents\weather>_

确保文件路径正确: 在此处输入图像描述

为什么它不起作用?

python
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-07-19 18:02:01 +0000 UTC

从命令行导入类

  • 0

我正在编写一个使用 API 的程序。它需要坐标和一段时间,然后使用这些坐标将这段时间内的天气写入文件。有必要实现一个使用命令行的接口。这是使用它的模块的代码:

import click

from weather.table_creator.local_files.local_files import LocalFiles


@click.group()
def cli():
    pass


@cli.command("stats")
@click.argument("lat")
@click.argument("lng")
@click.argument("start")
@click.argument("end")
def stats_cli(lat, lng, start, end):
    ob1 = LocalFiles()
    ob1.get_values(lat, lng, start, end)
    ob1.transformation()
    ob1.create_name()
    ob1.record()

问题是当我通过终端运行模块时,出现以下错误:

(venv) D:\Documents\weather>python weather\cli\cli.py stats 56.85 60.61 2018-07-16 2018-07-18
Traceback (most recent call last):
  File "weather\cli\cli.py", line 3, in <module>
    from weather.table_creator.local_files.local_files import LocalFiles
ModuleNotFoundError: No module named 'weather'

而且,如果我只是执行文件,找到模块是没有问题的。在该程序的其他模块中,使用与此相同的行导入类,并且一切正常。

我的程序的文件系统: 在此处输入图像描述

如您所见,这个未找到的模块存在并且感觉很好。来自另一个模块的类调用行由 PyCharm 自动编写。如何修复此错误?

Local_files 模块代码:

import copy

from weather.table_creator.api.api import API


class LocalFiles:
    def __init__(self):
        self.api = API()

    def get_values(self, lat, lng, start, end):
        response = self.api.send_request(lat, lng, start, end)
        var = response.json()
        hours = var['hours']
        self.air_point = copy.deepcopy(hours)
        self.hum_point = copy.deepcopy(hours)
        self.time_point = copy.deepcopy(hours)
        for i in range(0, len(hours)):
            current_hour = hours[i]
            air = current_hour['airTemperature']
            hum = current_hour['humidity']
            time = current_hour['time']
            self.air_point[i] = air['noaa']
            self.hum_point[i] = hum['noaa']
            self.time_point[i] = time[:-9]

    def transformation(self):
        self.containing = 'дата/время;температура;влажность'
        for i in range(0, len(self.air_point)):
            self.containing = self.containing + f"\n{self.time_point[i]};{self.air_point[i]};{self.hum_point[i]}"
        return self.containing

    def create_name(self):
        self.api.lat = str(self.api.lat)
        self.api.lng = str(self.api.lng)
        self.api.lat = self.api.lat.replace('.', '')
        self.api.lng = self.api.lng.replace('.', '')
        self.api.start = self.api.start.replace('-', '')
        self.api.end = self.api.end.replace('-', '')
        self.name_file = f'{self.api.lat} {self.api.lng} {self.api.start}-{self.api.end}'
        return self.name_file

    def record(self):
        with open(f'{self.name_file}.csv', 'w') as f:
            f.write(self.containing)
            pass
        return 'успех'

api模块代码:

import requests

from weather.table_creator.api.constants import BASE_URL, AUTHORISATION


class API:
    def __init__(self, url=BASE_URL, aut=AUTHORISATION):
        self.url = url
        self.aut = aut

    def send_request(self, lat, lng, start, end):
        self.params = {
            'params': ','.join(['humidity', 'airTemperature']),
            'lat': lat,
            'lng': lng,
            'start': f'{start} 00:00',
            'end': f'{end} 00:00'
        }
        self.lat = lat
        self.lng = lng
        self.start = start
        self.end = end
        self.response = requests.get(self.url, params=self.params, headers=self.aut)
        # json_data = self.response.json()
        return self.response
python
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-07-14 23:41:07 +0000 UTC

为什么 __div__ 魔术方法不起作用?

  • 1
from __future__ import division
class BaseWallet:

    def __init__(self, name, amount, exchange_rate=1):
        self.name = f'{name}'
        self.amount = amount
        self.exchange_rate = exchange_rate

    def __add__(self, other):
        if isinstance(other, BaseWallet):
            new_amount = self.amount + other.amount * other.exchange_rate/self.exchange_rate
        else:
            new_amount = self.amount + float(other)
        return BaseWallet(self.name, new_amount, self.exchange_rate)

    def __sub__(self, other):
        if isinstance(other, BaseWallet):
            new_amount = self.amount - other.amount * other.exchange_rate/self.exchange_rate
        else:
            new_amount = self.amount - float(other)
        return BaseWallet(self.name, new_amount, self.exchange_rate)

    def __mul__(self, other):
        new_amount = self.amount * float(other)
        return BaseWallet(self.name, new_amount, self.exchange_rate)

    def __div__(self, other):
        new_amount = self.amount / float(other)
        return BaseWallet(self.name, new_amount, self.exchange_rate)

    def __rmul__(self, other):
        return BaseWallet.__mul__(self, other)

    def __radd__(self, other):
        return BaseWallet.__add__(self, other)

class RubleWallet(BaseWallet):
    coef = 1

    def __init__(self, name, amount, exchange_rate=coef):
        self.name = f'{name}'
        self.amount = amount
        self.exchange_rate = exchange_rate


class DollarWallet(BaseWallet):
    coef = 60

    def __init__(self, name, amount, exchange_rate=coef):
        self.name = f'{name}'
        self.amount = amount
        self.exchange_rate = exchange_rate


class EuroWallet(BaseWallet):
    coef = 70

    def __init__(self, name, amount, exchange_rate=coef):
        self.name = f'{name}'
        self.amount = amount
        self.exchange_rate = exchange_rate


ob1 = RubleWallet("X", 70)
ob2 = EuroWallet("D", 10)
ob2 = ob2/5
print(ob2.name, ob2.amount, ob2.exchange_rate)

我将抛开程序的整个代码,因为这里通常会立即询问它。如您所见,已经实现了许多表示算术运算的魔术方法。注意div方法。所有方法都可以正常工作,但不是他。Pycharm 不像所有其他方法一样使它变成粉红色。它只是没有被定义为一种方法。执行下面写的行时,会出现以下错误:

D:\Documents\Pycharm\venv\Scripts\python.exe D:/Documents/Pycharm/task10.py
Traceback (most recent call last):
  File "D:/Documents/Pycharm/task10.py", line 66, in <module>
    ob2 = ob2/5
TypeError: unsupported operand type(s) for /: 'EuroWallet' and 'int'

我用谷歌搜索,到处都说div方法在 python 中。但是我的python不明白。Python 3.8 版。pycharm版本:在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-07-14 01:05:31 +0000 UTC

列表可以是类字段吗?

  • 0

假设有一个类,我将其中的字段设置为列表

class Calculator:
    history = [[], []]

但是,如果我在方法中编写这样的代码:

Calculator.history[1] = (self.a, self.b, self.act, self.c)

给出错误信息

TypeError: 'function' object does not support item assignment

'function' 对象不支持元素赋值

但是我设置了字段,而不是功能?我怎样才能制作一个可以在课堂上使用的列表?此外,二维

python
  • 1 个回答
  • 10 Views
Martin Hope
Сергей Малышев
Asked: 2020-07-13 01:28:26 +0000 UTC

如何将另一个类的所有参数分配给一个类对象?

  • 1

如果我们取变量,假设我有 x 和 y,我想将 x 的值分配给 y,我只写

x=y

如何对类对象做同样的事情?

这是我的课

class Calculator:

def sum(self, x, y):
    x = int(x)
    y = int(y)
    self.z = x + y
    self.act = "sum"
    print(self.z)

def sub(self, x, y):
    self.z = x - y
    self.act = "sub"
    print(self.z)

def mul(self, x, y):
    self.z = x * y
    self.act = "mul"
    print(self.z)

def div(self, x, y, mod=False):
    if not mod:
        self.z = x / y
        self.act = "div"
        print(self.z)
    if mod:
        self.z = x % y
        self.act = "mod"
        print(self.z)

Op0 = Calculator()
Op1 = Calculator()
Op2 = Calculator()

这是一个可以执行 4 次算术运算的计算器。当需要执行操作时,对象 Op0 - 操作将被分配适当的参数。

@cli.command("sum")
@click.argument("x")
@click.argument("y")
def sum_cli(x, y):
    Op0.sum(x, y)

但是我需要保存操作的历史,所以我又增加了2个操作对象,我在动作执行函数中写了如下代码:

def sum_cli(x, y):
    Calculator.Op2 = Calculator.Op1
    Сalculator.Op1 = Calculator.Op0
    Calculator.Op0 = Calculator(x, y)
    Op0.sum(x, y)

但这是错误的,他将 Calculator 类视为一个对象。以及如何正确书写?

python
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5