RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

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

Алексей Однорог's questions

Martin Hope
Алексей Однорог
Asked: 2020-05-30 23:17:17 +0000 UTC

如何访问用户控件中的控件

  • 3

我在 UserControl 中放入了 2 个表单,并且有一个 Grid,我将 UserControls 添加为子项,具体取决于 ComboBox 中的选择

我需要从 UserControls 中获取 TextBoxes 的值和名称。代码:MainWindow.XAML

    <Grid>
        <ComboBox HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0" Name="FormType" SelectionChanged="FormType_SelectionChanged"></ComboBox>
        <Grid Name="FormContent" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,50,0,0" Height="261" Width="770"/>
        <Button Name="StartButton" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="10,0,0,103" Content="START" Click="StartButton_Click"></Button>
        <Button Name="StopButton" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="100,0,0,103" Content="STOP" Click="StopButton_Click" IsEnabled="False"></Button>
    </Grid>

主窗口.xaml.cs

public partial class MainWindow : Window
{
    UserControl view_form;
    string form = "yaw emulator";
    string[] device_list = { "yaw emulator", "6dof" };
    public MainWindow()
    {
        InitializeComponent();
        foreach (string item in this.device_list)
        {
            FormType.Items.Add(item);
        }
        FormType.SelectedIndex = 0;
        this.MakeContentForm();
    }

    private void MakeContentForm()
    {
        FormContent.Children.Clear();
        if (this.form == "6dof")
        {
            this.view_form = new device_form_6dof();
        }
        else if (this.form == "yaw emulator")
        {
            this.view_form = new device_form_yaw_emulator();
        }
        else
        {
            this.view_form = new device_form_yaw_emulator();
        }
        this.view_form.Name = "View_Form";

        FormContent.Children.Add(view_form);
    }

    private void FormType_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        string text = (sender as ComboBox).SelectedItem as string;

        this.form = text;
        this.MakeContentForm();
    }
    private void StartButton_Click(object sender, RoutedEventArgs e)
    {
        var list = FormContent.Children[0];
        //this.player = new MovePlayer();
        //this.device.start();

        //this.player.Start(this.device);
        this.StartButton.IsEnabled = false;
        this.StopButton.IsEnabled = true;
    }

用户控件之一(它们仅在字段数上有所不同)

device_form_6dof.xaml

<Grid>
    <Label Content="COM port name" HorizontalAlignment="Left" Height="31" Margin="10,10,0,0" VerticalAlignment="Top" Width="101"/>
    <TextBox TextAlignment="Center" Margin="116,14,0,0" TextWrapping="Wrap" Text="COM1" VerticalAlignment="Top" Width="92" HorizontalAlignment="Left" Height="20" Name="port_name" TextChanged="port_name_TextChanged"/>
    <Label Content="Baudrate" HorizontalAlignment="Left" Height="28" Margin="10,41,0,0" VerticalAlignment="Top" Width="101"/>
    <TextBox TextAlignment="Center" Margin="116,45,0,0" TextWrapping="Wrap" Text="9600" VerticalAlignment="Top" Width="92" HorizontalAlignment="Left" Height="20" MaxLength="6" Name="baudrate_tb" TextChanged="baudrate_tb_TextChanged"/>
</Grid>

到目前为止,在 device_form_6dof.xaml.cs 代码中只有存根 - 那里没有什么可显示的......

当按下 Start 时,我还需要获取现在处于活动状态的 UserControl 字段的数据。

在链接上找到类似的东西,但不太明白。

UPD:理论上,我在 view_form 字段中保存了我在表单上使用的 UserControl,并且可以从 MainWindow 中的任何位置访问它。理论上,这是一个UserControl类型的字段, 这里表示我可以使用Controls属性获取我需要的一切。但由于某种原因,我无法访问它......嗯......到目前为止,我看到的唯一选择是为类似的 UserControls 创建一个父类,并为所有具有值的必要字段实现返回方法......但是我不想重新发明轮子。在我看来,你需要的一切都在某个地方。

UPD2:关于控件 - 不正确。引用的 UserControl 来自 System.Windows.Forms 空间,而我是从 System.Windows.Controls 空间创建的。

解决方案:感谢 Max Zhukov 同志 - 他帮了很多忙。我在链接上找到了答案的来源。对于初学者来说,这是一种简单易懂的方法。拿他怎么办?为此,我保留了一个静态 utils 类。

namespace rServer
{
    static class utils
    {
        public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
        {
            if (depObj != null)
            {
                for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
                {
                    DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
                    if (child != null && child is T)
                    {
                        yield return (T)child;
                    }

                    foreach (T childOfChild in FindVisualChildren<T>(child))
                    {
                        yield return childOfChild;
                    }
                }
            }
        }
    }
}

然后,在 MainWindow.xaml.cs 中,如有必要,我进行如下调用

foreach (TextBox tb in utils.FindVisualChildren<TextBox>('Имя_элемента_по_которому_ищем'))
        {
            Console.Write(tb.Name);
            Console.WriteLine(tb.Text);
        }
c#
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Однорог
Asked: 2020-02-08 23:15:11 +0000 UTC

将 Auto Py To Exe (pyinstaller) 与 PyQT5 一起使用时出错

  • 0

我需要将 python 程序转换为可执行文件,在我看来最方便的方法是使用 Auto Py To Exe。但是 Auto Py To Exe 执行的命令出了点问题:

pyinstaller -y -w -i "D:/PythonProjects/LogoServer.ico" --version-file 1.0 "D:/PythonProjects/vrserver(ver4)/vrserver/main.py"

和窗口中的输出:

Building in the current instances temporary directory at 
C:\Users\11\AppData\Local\Temp\tmphg9pxkms
To get a new temporary directory, restart this application
Executing: pyinstaller -y -w -i "D:/PythonProjects/LogoServer.ico" --

version-file 1.0 "D:/PythonProjects/vrserver(ver4)/vrserver/main.py"
1727545 INFO: PyInstaller: 3.4
1727546 INFO: Python: 3.5.2
1727546 INFO: Platform: Windows-10-10.0.17134-SP0
1727547 INFO: wrote C:\Users\11\AppData\Local\Temp\tmphg9pxkms\main.spec
1727550 INFO: UPX is not available.
1727551 INFO: Extending PYTHONPATH with paths
['D:\\PythonProjects\\vrserver(ver4)\\vrserver',
 'C:\\Users\\11\\AppData\\Local\\Temp\\tmphg9pxkms']
1727551 INFO: checking Analysis

1727552 INFO: Building Analysis because Analysis-01.toc is non existent
1727552 INFO: Initializing module dependency graph...
1727553 INFO: Initializing module graph hooks...
1727555 INFO: Analyzing base_library.zip ...
1730165 INFO: running Analysis Analysis-01.toc
1730263 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python.exe
1730357 WARNING: lib not found: api-ms-win-crt-locale-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python.exe
1730451 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python.exe
1730549 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python.exe
1730645 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python.exe
1730825 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1730918 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731014 WARNING: lib not found: api-ms-win-crt-locale-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731108 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731202 WARNING: lib not found: api-ms-win-crt-time-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731295 WARNING: lib not found: api-ms-win-crt-conio-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731389 WARNING: lib not found: api-ms-win-crt-filesystem-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731483 WARNING: lib not found: api-ms-win-crt-process-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731585 WARNING: lib not found: api-ms-win-crt-environment-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731675 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731774 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731871 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\python35.dll
1731967 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\VCRUNTIME140.dll
1732060 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\VCRUNTIME140.dll
1732154 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\VCRUNTIME140.dll
1732248 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\VCRUNTIME140.dll
1732343 WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency of C:\Users\11\AppData\Local\Programs\Python\Python35\VCRUNTIME140.dll
1732349 INFO: Caching module hooks...
1732354 INFO: Analyzing D:\PythonProjects\vrserver(ver4)\vrserver\main.py
1732853 INFO: Loading module hooks...
1732854 INFO: Loading module hook "hook-PyQt5.QtWidgets.py"...
1735316 WARNING: Cannot read QLibraryInfo output: raised Expecting value: line 1 column 1 (char 0) when decoding:
Traceback (most recent call last):
  File "<string>", line 11, in <module>
TypeError: __call__() got an unexpected keyword argument 'qualname'
An error occurred, traceback follows:
Traceback (most recent call last):
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\auto_py_to_exe\__main__.py", line 215, in convert
    pyi.run() # Execute PyInstaller
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\__main__.py", line 111, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\__main__.py", line 63, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 838, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 784, in build
    exec(text, spec_namespace)
  File "<string>", line 17, in <module>
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 241, in __init__
    self.__postinit__()
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\datastruct.py", line 158, in __postinit__
    self.assemble()
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 500, in assemble
    module_hook.post_graph()
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\imphook.py", line 410, in post_graph
    self._load_hook_module()
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\imphook.py", line 377, in _load_hook_module
    self.hook_module_name, self.hook_filename)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\compat.py", line 736, in importlib_load_source
    return mod_loader.load_module()
  File "<frozen importlib._bootstrap_external>", line 388, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 809, in load_module
  File "<frozen importlib._bootstrap_external>", line 668, in load_module
  File "<frozen importlib._bootstrap>", line 268, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\hooks\hook-PyQt5.QtWidgets.py", line 11, in <module>
    hiddenimports, binaries, datas = add_qt5_dependencies(__file__)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\utils\hooks\qt.py", line 514, in add_qt5_dependencies
    more_binaries = qt_plugins_binaries(plugin, namespace=namespace)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\utils\hooks\qt.py", line 132, in qt_plugins_binaries
    pdir = qt_plugins_dir(namespace=namespace)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\utils\hooks\qt.py", line 95, in qt_plugins_dir
    paths = [pyqt5_library_info.location['PluginsPath']]
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\utils\hooks\qt.py", line 67, in __getattr__
    qli = json.loads(json_str)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\json\__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\11\AppData\Local\Programs\Python\Python35\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Project output will not be moved to output folder
Complete.

有人怀疑这是由于使用了 PyQT5,但这是基于 pyinstaller 对 PyQT4 不友好的事实。没有其他想法。有什么问题?

pyqt5
  • 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