RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

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

全部问题

Martin Hope
dynamic.aerospace.inc
Asked: 2024-08-30 23:27:32 +0000 UTC

在 Qt-Designer 中创建活动文件面板

  • 5

不久前,我在编写程序时开始学习PyQt,并面临一个问题:
如何制作活动文件或项目的列表?

当您打开PyCharm、Sublime Text甚至Notepad时,您可以在顶部看到当前打开工作的文件列表。
是否可以使用PyQt来实现这一点?如果可以,如何实现?

小部件示例

这样的小部件应该打开、关闭和显示其内部的任何程序元素


更新:

我们目前拥有的:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <author>Dynamic Software, Dynamic Aerospace</author>
 <class>IIC</class>
 <widget class="QMainWindow" name="IIC">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>640</width>
    <height>480</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>IIC - (демо версия)</string>
  </property>
  <widget class="QWidget" name="centralwidget"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>640</width>
     <height>22</height>
    </rect>
   </property>
   <widget class="QMenu" name="File">
    <property name="title">
     <string>Файл</string>
    </property>
    <addaction name="New"/>
    <addaction name="Open"/>
    <addaction name="RecentFile"/>
    <addaction name="separator"/>
    <addaction name="Close"/>
    <addaction name="CloseAll"/>
    <addaction name="separator"/>
    <addaction name="Save"/>
    <addaction name="SaveAs"/>
    <addaction name="Export"/>
    <addaction name="separator"/>
    <addaction name="Preview"/>
    <addaction name="Print"/>
    <addaction name="separator"/>
    <addaction name="Send"/>
    <addaction name="separator"/>
    <addaction name="InformationDocument"/>
    <addaction name="separator"/>
    <addaction name="Exit"/>
   </widget>
   <widget class="QMenu" name="Edit">
    <property name="title">
     <string>Правка</string>
    </property>
    <addaction name="Undo"/>
    <addaction name="Redo"/>
    <addaction name="separator"/>
    <addaction name="RepeatLastCommand"/>
    <addaction name="separator"/>
    <addaction name="Cut"/>
    <addaction name="Copy"/>
    <addaction name="Paste"/>
    <addaction name="Delete"/>
    <addaction name="separator"/>
    <addaction name="Scale"/>
   </widget>
   <widget class="QMenu" name="Settings">
    <property name="title">
     <string>Настройки</string>
    </property>
    <addaction name="RestoreLicenses"/>
    <addaction name="ReceiveLicensesIIC"/>
    <addaction name="separator"/>
    <addaction name="Parameters"/>
    <addaction name="LoadParameters"/>
    <addaction name="SaveParameters"/>
   </widget>
   <widget class="QMenu" name="Apps">
    <property name="title">
     <string>Приложения</string>
    </property>
    <addaction name="AddApps"/>
    <addaction name="Configurator"/>
   </widget>
   <widget class="QMenu" name="Window">
    <property name="title">
     <string>Окно</string>
    </property>
    <addaction name="CloseCurrentWindow"/>
   </widget>
   <widget class="QMenu" name="Help">
    <property name="title">
     <string>Справка</string>
    </property>
    <addaction name="Content"/>
    <addaction name="separator"/>
    <addaction name="TrainingMaterials"/>
    <addaction name="separator"/>
    <addaction name="IICOnInternet"/>
    <addaction name="separator"/>
    <addaction name="LicenseAgreement"/>
    <addaction name="AboutProgram"/>
   </widget>
   <widget class="QMenu" name="Decoration">
    <property name="title">
     <string>Оформление</string>
    </property>
    <addaction name="StyleLibrary"/>
    <addaction name="separator"/>
    <addaction name="CreateReport"/>
    <addaction name="EditTemplateReport"/>
    <addaction name="CreateTemplateReport"/>
   </widget>
   <widget class="QMenu" name="Analysis">
    <property name="title">
     <string>Анализ</string>
    </property>
    <addaction name="AnalysisInjector"/>
    <addaction name="OptimizationInjector"/>
    <addaction name="separator"/>
    <addaction name="CustomExpressions"/>
   </widget>
   <addaction name="File"/>
   <addaction name="Edit"/>
   <addaction name="Analysis"/>
   <addaction name="Decoration"/>
   <addaction name="Settings"/>
   <addaction name="Apps"/>
   <addaction name="Window"/>
   <addaction name="Help"/>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
  <action name="New">
   <property name="text">
    <string>Новый</string>
   </property>
  </action>
  <action name="Open">
   <property name="text">
    <string>Открыть</string>
   </property>
  </action>
  <action name="RecentFile">
   <property name="text">
    <string>Последние файлы</string>
   </property>
  </action>
  <action name="Save">
   <property name="text">
    <string>Сохранить</string>
   </property>
  </action>
  <action name="SaveAs">
   <property name="text">
    <string>Сохранить как</string>
   </property>
  </action>
  <action name="action_PDF">
   <property name="text">
    <string>.PDF</string>
   </property>
  </action>
  <action name="action_TXT">
   <property name="text">
    <string>.TXT</string>
   </property>
  </action>
  <action name="Export">
   <property name="text">
    <string>Экспортировать</string>
   </property>
  </action>
  <action name="Print">
   <property name="text">
    <string>Печать</string>
   </property>
  </action>
  <action name="Exit">
   <property name="text">
    <string>Выход</string>
   </property>
  </action>
  <action name="Undo">
   <property name="text">
    <string>Отменить</string>
   </property>
  </action>
  <action name="Redo">
   <property name="text">
    <string>Повторить</string>
   </property>
  </action>
  <action name="Cut">
   <property name="text">
    <string>Вырезать</string>
   </property>
  </action>
  <action name="Copy">
   <property name="text">
    <string>Копировать</string>
   </property>
  </action>
  <action name="Paste">
   <property name="text">
    <string>Вставить</string>
   </property>
  </action>
  <action name="action_6">
   <property name="text">
    <string>Дублировать</string>
   </property>
  </action>
  <action name="Delete">
   <property name="text">
    <string>Удалить</string>
   </property>
  </action>
  <action name="Scale">
   <property name="text">
    <string>Масштабировать</string>
   </property>
  </action>
  <action name="RestoreLicenses">
   <property name="text">
    <string>Восстановить лицензии</string>
   </property>
  </action>
  <action name="ReceiveLicensesIIC">
   <property name="text">
    <string>Получить лицензию на IIC</string>
   </property>
  </action>
  <action name="Parameters">
   <property name="text">
    <string>Параметры</string>
   </property>
  </action>
  <action name="LoadParameters">
   <property name="text">
    <string>Загрузить параметры</string>
   </property>
  </action>
  <action name="SaveParameters">
   <property name="text">
    <string>Сохранить параметры</string>
   </property>
  </action>
  <action name="AddApps">
   <property name="text">
    <string>Добавить приложение</string>
   </property>
  </action>
  <action name="Configurator">
   <property name="text">
    <string>Конфигуратор</string>
   </property>
  </action>
  <action name="CloseCurrentWindow">
   <property name="text">
    <string>Закрыть текущую вкладку</string>
   </property>
  </action>
  <action name="Content">
   <property name="text">
    <string>Содержание</string>
   </property>
  </action>
  <action name="TrainingMaterials">
   <property name="text">
    <string>Обучающие материалы</string>
   </property>
  </action>
  <action name="IICOnInternet">
   <property name="text">
    <string>IIC в интернете</string>
   </property>
  </action>
  <action name="LicenseAgreement">
   <property name="text">
    <string>Лицензионное соглашение</string>
   </property>
  </action>
  <action name="AboutProgram">
   <property name="text">
    <string>О программе</string>
   </property>
  </action>
  <action name="InformationDocument">
   <property name="text">
    <string>Информация о документе</string>
   </property>
  </action>
  <action name="Send">
   <property name="text">
    <string>Отправить</string>
   </property>
  </action>
  <action name="Close">
   <property name="text">
    <string>Закрыть</string>
   </property>
  </action>
  <action name="CloseAll">
   <property name="text">
    <string>Закрыть все документы</string>
   </property>
  </action>
  <action name="Preview">
   <property name="text">
    <string>Предварительный просмотр</string>
   </property>
  </action>
  <action name="RepeatLastCommand">
   <property name="text">
    <string>Повторить последнюю команду</string>
   </property>
  </action>
  <action name="StyleLibrary">
   <property name="text">
    <string>Библиотека стилей</string>
   </property>
  </action>
  <action name="CreateReport">
   <property name="text">
    <string>Создать отчет</string>
   </property>
  </action>
  <action name="EditTemplateReport">
   <property name="text">
    <string>Редактировать шаблон отчета</string>
   </property>
  </action>
  <action name="CreateTemplateReport">
   <property name="text">
    <string>Создать шаблон отчета</string>
   </property>
  </action>
  <action name="AnalysisInjector">
   <property name="text">
    <string>Анализ форсунки</string>
   </property>
  </action>
  <action name="OptimizationInjector">
   <property name="text">
    <string>Оптимизация форсунки</string>
   </property>
  </action>
  <action name="CustomExpressions">
   <property name="text">
    <string>Пользовательские выражения</string>
   </property>
  </action>
 </widget>
 <resources/>
 <connections/>
</ui>

为了清晰起见,截图:

在此输入图像描述

python
  • 1 个回答
  • 41 Views
Martin Hope
Роман Юмагулов
Asked: 2024-08-30 19:54:42 +0000 UTC

应应用哪些修饰符以及在何处应用以使所有元素适合横向方向?

  • 5
import ...

data class ArtInfo(
    val artId: Int,
    val drawableRes: Int,
    val title: String,
    val author: String,
    val year: Int,
)

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            ComposeTheme {
                Surface(
                    modifier = Modifier
                        .statusBarsPadding()
                        .navigationBarsPadding()
                        .fillMaxSize(),
                    color = MaterialTheme.colorScheme.onPrimary
                ) {
                    ArtSpaceApp()
                }
            }
        }
    }
}

@Composable
fun ArtSpaceApp(modifier: Modifier = Modifier) {
    val arts = listOf(
        ...
    )

    var artState by remember {
        mutableStateOf(arts[0])
    }

    fun navigateToNextArt() {
        ...
    }

    fun navigateToPreviousArt() {
        ...
    }

    Column(
        modifier = modifier
            .fillMaxSize()
            .padding(horizontal = 24.dp),
        verticalArrangement = Arrangement.SpaceBetween,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Spacer(modifier = Modifier.height(20.dp))
        Art(imageResource = artState.drawableRes)
        Spacer(modifier = Modifier.height(60.dp))
        AboutArt(
            title = artState.title,
            author = artState.author,
            year = artState.year
        )
        NavigationArts(
            { navigateToNextArt() },
            { navigateToPreviousArt() }
        )
    }
}

@Composable
fun Art(@DrawableRes imageResource: Int) {
    Surface(
        modifier = Modifier
            .border(width = 32.dp, color = Color.White)
            .shadow(elevation = 16.dp),
        ) {
        Image(
            painter = painterResource(id = imageResource),
            contentDescription = null
        )
    }
}

@Composable
fun AboutArt(
    modifier: Modifier = Modifier
        .background(color = colorResource(id = R.color.background_about_art)),
    title: String,
    author: String,
    year: Int,
) {
    Surface(
        modifier = modifier
            .padding(16.dp)
    ) {
        Column(
            modifier = modifier
                .fillMaxWidth()
        ) {
            Text(
                text = title,
                fontSize = 24.sp,
                fontWeight = FontWeight.W300,
            )

            Row {
                Text(
                    text = author,
                    fontWeight = FontWeight.W800
                )

                Text(
                    text = " ($year)"
                )
            }
        }
    }
}

@Composable
fun NavigationArts(
    navigateToNext: () -> Unit,
    navigateToPrevious: () -> Unit,
) {
    Row(
        modifier = Modifier
            .fillMaxWidth()
            .padding(horizontal = 8.dp),
        horizontalArrangement = Arrangement.SpaceBetween
    ) {
        Button(onClick = ... }) {
            Text(text = "Previous")
        }

        Button(onClick = ... }) {
            Text(text = "Next")
        }
    }
}

纵向

横向

问题是 Art(...) - 图像占据了所有垂直空间,没有为 AboutArt(...) - 图像描述和 NavigationArts(...) - 图像之间的导航按钮留下空间。

android-jetpack-compose
  • 2 个回答
  • 36 Views
Martin Hope
Irking
Asked: 2024-08-30 16:28:09 +0000 UTC

删除 .txt 文件的前 N ​​行

  • 5

如何删除文件的前N行?删除后行的顺序并不重要。对我来说最明显的选择是计算循环中的行数,然后运行第二个循环来删除。有更清洁的解决方案吗?

对于一般理解:

该文件将包含最多 50 行(有条件的)标头(解析结果)。当达到此数字时,您需要删除前 40 个,以便文件中仅保留最后 10 个。

解析器检查文章标题是否在文件中;如果没有,则标题包含在结果中(向用户显示)。如果有,则被忽略。我正在寻找的解决方案是防止文件增长。

也许还有另一种解决方案?就像在开头写一个新行并删除最后一行一样。请告诉我什么是正确的。

python
  • 1 个回答
  • 52 Views
Martin Hope
Yarior Korsaines
Asked: 2024-08-30 12:26:25 +0000 UTC

如何检查一个数字中的所有数字都大于零?

  • 5

我对任务有疑问。健康)状况:

给定一个数字,例如,如下所示:

num = 12345

检查该数字的所有数字是否都大于零。

我尝试编写代码

n = int(input("Введите число: "))
flag = True
while n and flag:
     flag = n > 0
     n //= 10
print(flag)

如果输入12345,就会显示True。

如果你输入120345它,它也会输出True,尽管它应该输出False。

告诉我错误在哪里。

python
  • 6 个回答
  • 94 Views
Martin Hope
AnnaBazueva
Asked: 2024-08-30 11:25:39 +0000 UTC

用于异常处理的动态代码生成(元编程)

  • 6

在选择这个问题的解决方案时,我想使用该模块pdb。
使用该模块,您可以通过 在控制台中输入适当的命令pdb来更改变量并执行功能。 但我不明白如何以编程方式将命令发送到调试控制台。 使用 sys.stdout 进行拦截会导致与调试控制台发生冲突。(我尝试将拦截到的out添加到异步队列中并在另一个线程中处理它,但还没有成功。)


pdb

现在我正在尝试通过上下文管理器。
这是代码:

import re
import sys
import pdb
import traceback
from contextlib import contextmanager

from rich import print, inspect

# Динамическое создание функций
def create_function(name):
    def func(param):
        print(f'{param}("{name}")')
    return func

# Класс для перехвата вывода
class StreamInterceptor:
    def __init__(self):
        self.original_stdout = sys.stdout

    def write(self, message):
        # Перехватываем вывод и обрабатываем его
        print(f"Перехваченный вывод: {message.strip()}")

    def flush(self):
        pass  # Нужно для совместимости

    def __enter__(self):
        sys.stdout = self
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        sys.stdout = self.original_stdout

# Обработчик исключений
def my_except_hook(exctype, value, tb):
    if exctype is not SystemExit:
        tb_str = ''.join(traceback.format_exception(exctype, value, tb))
        print(f"Обрабатываем исключение:\n{tb_str}")
        # Извлечение имени функции из traceback
        func_name = value.name

        globals()[func_name] = create_function(func_name)
        print(f'Создана функция: {func_name}')
        inspect(globals()[func_name])

# Установка обработчика исключений
sys.excepthook = my_except_hook

# Используем контекстный менеджер для перехвата вывода
with StreamInterceptor():
    # Устанавливаем точку останова перед вызовом функции
    # pdb.set_trace()

    Hello_world("print")
    Hello_world("print")
    It_is_not_print("print")

该函数my_except_hook运行没有错误,该函数是动态创建的Hello_world,并且该行显示在控制台中:print("Hello_world")。
在上面的代码中,行:pdb.set_trace()暂时被注释掉,但它的使用pdb是必要的,因为即使处理的异常也会导致上下文管理器关闭。
查看输出:

Обрабатываем исключение:
Traceback (most recent call last):
  File "c:\KWORK\not_print.py", line 73, in <module>
    Hello_world("print")
    ^^^^^^^^^^^
NameError: name 'Hello_world' is not defined

Создана функция: Hello_world
╭─ <function create_function.<locals>.func at 0x00000162AFEC9120> ─╮
│ def create_function.<locals>.func(param):                        │
│                                                                  │
│ 38 attribute(s) not shown. Run inspect(inspect) for options.     │
╰──────────────────────────────────────────────────────────────────╯
print("Hello_world")

代码需要继续执行,即lines: 72, 73, 74必须实现,
这正是所需要的breakpoint()。


互联网上有关主题的信息明显少于Django(例如)。

问题:

1. 如何使用该模块pdb以编程方式输入命令,而不是(手动)进入控制台?

如何实现对所有代码的保护?
例如,在元编程时,您不必将每一行换行到try-中,except也不用将记录放入f.log!?
PS 全局错误保护也可以解决这个问题。

python
  • 1 个回答
  • 104 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