我正在尝试在 Qt-QML (用于桌面)中设计一个概要面板。该界面应以固定分辨率使用,因此我更喜欢对不同的图形元素使用 PNG 图像来创建模式(管道、管道曲线、管道-t、泵、阀门等)。现在的问题是如何更改不同组件的填充颜色:我希望用户可以选择颜色(在实际情况下可以使用不同的液体),但我找不到在 QML 中如何做到这一点。我想使用我的 PNG 组件作为背景,然后绘制一个矩形,并用 SVG 蒙版遮盖。但在网络上我只能找到不适用于桌面的 qt 组件“MaskedItem”。我想知道是否没有办法用一种颜色(黑色和透明)来覆盖我的 PNG 和 SVG 图像,然后在 QML 中更改它的颜色属性。有人有什么想法吗?真的非常感谢。
(编辑更好地解释)
这个问题比我能够解释的更复杂。我创建了几个具有特定属性的 QML 组件,每个组件都有一个透明的背景图像(PNG)。现在,当主 QML 处于特定状态(由 Qt 应用程序设置)时,我需要使用可变颜色“x”填充 PNG 图像的定义区域。我的问题是:如何从 QML 中用可变颜色填充 PNG/SVG 的区域?我需要的是放置我的“背景”图像,然后在其上应用一个“矩形”组件(颜色“x”),最后在这个矩形上放置一个遮罩,以定义该矩形的哪些区域必须可见,保留背景(之前的底部图像)。我希望我现在能更好地解释自己。
(编辑解决方案)经过很多小时,除了使用 qt-components MaskedItem 之外,我找不到任何其他解决方案。下面我发布了我使用的解决方案。感谢大家的兴趣。
class Registration_model extends CI_Model {
function __construct() {
parent::__construct();
}
function check_email_availability($email)
{
$sql = "CALL proc_1301('$email');";
$query = $this->db->query($sql) or die(mysql_error());
return $query->row_array();
}
function check_username_availability($username)
{
$sqlt = "CALL proc_1303('$username');";
$query = $this->db->query($sqlt) or die(mysql_error());
return $query->row_array();
}
function process_registration($username, $email, $password)
{
$sql = "CALL `proc_1302`('$username', '$email', '$password');";
$query = $this->db->query($sql) or die(mysql_error());
return $query->result_array();
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器代码,它从模型中逐个调用三个函数:
$emailCheckRes = $this->Registration_model->check_email_availability($email);
$usernameCheckRes = $this->Registration_model->check_username_availability($username);
$this->data['regRes'] = $this->Registration_model->process_registration($username, $email, $password);
Run Code Online (Sandbox Code Playgroud)
我的问题是当我只运行一个功能它运行成功,但当我运行其中两个或所有三个它显示空白页...任何想法为什么???
解
所以最后我们解决自己问题的唯一方法是:
/* ADD THIS FUNCTION IN SYSTEM/DATABASE/DB_ACTIVE_REC …Run Code Online (Sandbox Code Playgroud)