আমি যখন তাদের ডেটা উত্স পরিবর্তন হয় তখন স্বয়ংক্রিয়ভাবে স্তরগুলি আপডেট করার চেষ্টা করছি। আমি আরবি ব্যবহার করছি কোন বৈশিষ্ট্যের সাথে একটি শৈলী ফাইল লিখতে এবং কিউজিআইএস-এ এই বৈশিষ্ট্য অনুসারে রঙ করা।
আমি বিভিন্ন বৈশিষ্ট্যযুক্ত মান সহ একটি নতুন শেফফিল লিখতে চাই এবং কিগিস মানচিত্রের রঙ আপডেট করতে চাই। পদক্ষেপ 1 সেই প্রক্রিয়াটিকে ট্রিগার করছে, দ্বিতীয় পদক্ষেপটি পরিবর্তিত শেফফাইল থেকে স্তর পুনরায় লোড করছে। এটির পদক্ষেপ 2 আমি এখানে উদ্বিগ্ন।
অন্যান্য প্রশ্ন / মেলিং তালিকার বকবক triggerRepaint
স্তর ব্যবহার করে উল্লেখ করে - যা কাজ করে না। অন্যান্য পরামর্শ অন্তর্ভুক্ত setCacheImage(None)
এবং আবার যে কাজ করে না। স্তরটি শেষ পর্যন্ত আপডেট হয় তবে আমি যুক্তিটি সত্যিই দেখতে পাচ্ছি না এবং কখনও কখনও কিছু না করার পরে অবাক হয়ে যায়। অথবা হয়ত আমি দুই মিনিট আগে কিছু করেছি।
এটি আপডেট করার এক প্রজননযোগ্য উপায় হ'ল লেজেন্ড মেনু থেকে স্তরটিকে নকল করা - নকলটি সর্বদা বর্তমান শেফফাইল থেকে তার ডেটা পেয়ে যায় এবং মূল স্তরটি নিজেই আপডেট হয়! সুতরাং এটি করার কিছু উপায় থাকতে হবে।
আমি মনে করি এটি ২.৮-তে আরও ভাল কাজ করছে তবে এটি ২.১০ তাই সম্ভবত কোথাও একটি নতুন বাগ রয়েছে।
সম্পর্কিত, তবে আমার জন্য 2.10-তে কাজ করে না:
কিউজিআইএসে উত্স পরিবর্তিত হলে স্বয়ংক্রিয়ভাবে রাস্টার স্তরগুলি পুনরায় লোড করবেন কীভাবে?
অন্যান্য জিনিস আমি চেষ্টা করেছি:
layer.dataProvider().dataChanged.emit()
- একবার কাজ করেছেন, আবার একই স্তরে নয়
আমি মনে করি লেয়ারটি কেন অনুলিপি করে কাজ করে তা আমি সন্ধান করেছি - যদি আমি আপডেট স্তরের উপর ভিত্তি করে একটি নতুন থ্রোওয়ে স্তর তৈরি করি এবং তারপরে আপডেট স্তরটিতে কল .triggerRepaint()
করি, এটি মানচিত্রের ক্যানভাসে আপডেট হয়:
QgsVectorLayer( layer.source(), "layer copy", layer.providerType() )
layer.triggerRepaint()
আমি যদি কোনও ভিন্ন স্তর উত্স ব্যবহার করি তবে এটি কাজ করে না, তাই মনে হয় আপনি যদি একই স্তর উত্সের ভিত্তিতে একটি স্তর অবজেক্ট তৈরি করেন ...
একটি রাস্টার স্তর (একটি জিওটিআইএফএফ থেকে) সহ এখনই একটি দ্রুত পরীক্ষা, এবং কেবল কল করা rlayer.triggerRepaint()
মানচিত্রের ক্যানভাসে রাস্টারটির দৃশ্যকে নির্ভরযোগ্যভাবে আপডেট করেছে বলে মনে হচ্ছে।
layer.setCacheImage(None)
এবং layer.triggerRepaint()
?
triggerRepaint()
। v 2.10.1-পাইসা